当C不返回任何值时,返回C中函数的值

时间:2013-09-07 15:59:10

标签: c return-value

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

2 个答案:

答案 0 :(得分:3)

这不再是合法的C,但是f1f2隐式返回int,因此您只是根据发生的情况获得了返回的随机值在堆栈的顶部。

答案 1 :(得分:3)

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

由于这些函数不是return任何内容,而是隐式声明返回int,因此您的程序会显示未定义的行为