c - C 中的 void 函数返回什么?

标签 c function

#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/

相关文章:

python - 将整个函数作为字符串获取/并将字符串转换为函数?

c - 使用OpenMP计算PI值

c - 将文本文件加载到二维数组中,然后与文字进行比较

c - 通过指向指针结构的指针访问内存

c - CString到* const * const c_char

c# - 编程语言中的栈和堆

python - 尝试调用类方法时出现 NameError 问题

python - 函数输出为整数(TypeError : must be str, 不是 int)

C++ 在一个参数中传递多个参数

r - 函数 : nested conditions 中的 dplyr NSE 模式