为什么这是以下c代码12的输出?
这是一个简单的 c 程序,但输出是 12 我不明白相同的输出是 12。请解释一下
#include <stdio.h>
int show()
{
printf("hello worldn");
}
int main()
{
int i;
i=show();
printf("%d",i);
return 0;
}
回答
如果一个函数通过到达结束}而结束,并且返回值被使用(在调用者中),它是未定义的行为。
引用C11,第 6.9.1 章
如果
}到达终止函数的 ,并且调用者使用了函数调用的值,则行为未定义。