c语言中在main()前加void,函数为什么还有返回值?说到返回值,指的是子函数吗?

来源:百度知道 编辑:UC知道 时间:2024/06/20 21:33:26
返回值指的是主函数,还是子函数?
比如说:
#include<stdio.h>
void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d %d",&a,&b);
c=max(a,b);
printf("max=%d",c);
}

int max(int x,int y)
int z;
if(x>y) z=y
else
z=x
return(z);
在这里,不是有返回值么?z的值不是返回给c了吗?main()前加void不是没有返回值么?这里怎么有了呢?

第一个问题在main()前加void,函数为什么还有返回值?
----实际上不需要return,因为返回的是空值;
----只有你的main()函数是int\long\.....时,才需要返回一个值。
第二个问题说到返回值,指的是子函数吗?
----对,返回的是子函数里的某个变量的值。

C中的main是可以不加void的
在main前加返回值是C++的特性。

返回值是所有函数都有的东东,包括C++的构造函数(隐式的返回一个对象)。
返回值是函数退出其堆栈之前做的最后一步,记录函数在进行过程中的某个线索。

void指返回的线索为空。

main() 的返回值是操作系统或虚拟环境的。

函数返回值

整型返回值类型使用寄存器EAX

c=max(a,b);

c就是从EAX寄存器读取的返回值。

如果max不是返回的整型,而是返回的字符串指针,结果就不对了。

严格的编译器,是应该给出告警甚至提示错误的。

main() 的返回值是编译环境的。如果你用 TURBO C、VC 进行编译,那么就是返回TC、VC;如果你直接在DOS下运行,那么就是返回DOS界面。