当C中的函数没有任何返回值时,它会返回什么?
例如这段代码:
#include <stdio.h>
int x;
f1(void);
f2(void);
main()
{
x=10;
printf("x = %d, ",x);
printf("x = %d, ",f1());
printf("x = %d, ",f2());
}
f1(void)
{
}
f2(void)
{
}
答案 0 :(得分:3)
这不再是合法的C,但是f1
和f2
隐式返回int
,因此您只是根据发生的情况获得了返回的随机值在堆栈的顶部。
答案 1 :(得分:3)
任何没有声明类型的函数都假定在旧版本的C中返回int
,但您不想依赖此行为。 (另外,你通常会收到警告)。
由于这些函数不是return
任何内容,而是隐式声明返回int
,因此您的程序会显示未定义的行为。