当没有返回语句时,返回int类型返回语句的值

Sup*_*k94 -5 c return function

当没有返回语句时,int类型返回语句的返回值是什么

为什么?

int func()
{
 printf("Hello");
}

int func1()
{

}

void main()
{
 int s,p;

 s=func();
 p=func1();
 printf("%d %d", s, p);
}
Run Code Online (Sandbox Code Playgroud)

md5*_*md5 6

在C(这是问题是如何标记),两者的返回值funcfunc1未定义.

C11(n1570),§6.9.1函数定义

如果}终止了函数,并且调用者使用了函数调用的值,则行为是未定义的.

而且,在托管环境中,main返回类型应该是int,而不是void.顺便说一下,有一个例外:在C99和C11中,如果到达}终止main(*),返回到环境的值为0.

(*)如果其返回类型兼容int.

  • @Supmaj阅读**未定义的行为**. (4认同)