#include <stdio.h>
void main()
{
int k = m();
printf("%d", k);
}
void m()
{
printf("hello");
}
输出
你好5
这里返回的void函数是什么?
如果没有 printf(),则输出为 1
。
这里发生了什么?
最佳答案
void
函数不返回任何内容。您的程序调用未定义的行为,因为它隐式定义 m
具有返回类型 int
(在 C89 中,如果函数在声明之前被调用,则隐式假定它具有返回类型int
),然后用返回类型 void
定义它。
如果您为 m
添加前向声明,编译器会正确地提示您正在尝试使用 void 函数的返回值,这是不可能的。
关于c - C 中的 void 函数返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513999/