c++ - C/C++ : Calling function with no arguments with function which returns nothing

标签 c++ c

为什么不能调用不带参数的函数,而函数调用作为不返回任何值的参数(恕我直言,这相当于调用不带参数但不带参数的函数)。

例如:

void foo(void) {...}
void bar(void) {...}

foo(bar())

不要误会我的意思,我知道 void 不是一个值,它不能被视为一个值。

按照我的逻辑,这是有道理的,应该可以做到。 我的意思是,为什么不呢?有什么理由认为这是不可能的吗?

最佳答案

我不相信我听到的任何理由都是好的。

看,在 C++ 中,您可以返回 void 函数的结果:

void foo() {
    // ...
}

void bar() {
    // ...
    return foo();
}

是的,完全一样:

foo();
return;

但是更符合泛型编程,这样你就可以让一个转发函数工作,而不必担心被转发的函数是否有void返回。

因此,如果应用类似的系统,使得 void 返回构成函数组合场景中的空调用,这也可以使函数组合更加通用。

关于c++ - C/C++ : Calling function with no arguments with function which returns nothing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143906/

相关文章:

c++ - 返回 C++ 中的映射以用作 lua 中的表

c++ - 二进制通过http

c - 如何使用 c 中的 write() 函数将整数 var 写入文件

c - C语言中如何清除字符缓冲区

mysql - 编写 MySQL 插件

c - 链表插入导致 sysmalloc 断言错误

c++ - 用 C++ 替换旧的 C

c++ - SDL 中的真正全屏

c++ - 将类的 move 成员作为const引用参数传递

c - 为什么 sscanf 不读取格式字符串中的第一个参数?