【发布时间】:2020-08-28 00:59:58
【问题描述】:
#include <stdio.h>
void fun();
int main(void) {
fun(fun());
return 0;
}
void fun()
{
printf("function is called");
}
函数 fun 的返回类型为 void。所以下面的说法应该是正确的吧!
fun(fun())
但编译器引发编译错误为错误:参数类型'void'不完整。无法理解错误的含义?
【问题讨论】:
-
正如你所说的
fun()是一个void函数,因此它的返回值不能传递给它自己(没有)。 -
另外,
fun函数不带参数,因此不能带参数调用它。 -
@Jabberwocky 你确定吗?我认为这是过时函数定义
void fun()的弱点。 -
是的。问题没有多大意义。这段代码的目的是什么? XY 问题。
-
当您尝试
printf("%d", fun());时,故障可能更明显。当void fun()没有返回值时,应该打印什么值?您不能将void函数的返回值传递给另一个函数,因为没有一个。
标签: c function void return-type