-3

当 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)
{
}
4

2 回答 2

3

这不再是合法的 C,而是f1f2式返回int,所以你只是得到随机值返回,可能基于堆栈顶部发生的事情。

于 2013-09-07T16:01:14.367 回答
3

任何没有声明类型的函数都假定int在旧版本的 C 中返回,但您不想依赖这种行为。(另外,您通常会收到警告)。

因为函数没有return任何作用,而是隐式声明为 return int,所以您的程序表现出未定义的行为

于 2013-09-07T16:01:26.393 回答