gcc没有警告调用带有参数的nullary函数?

Har*_*y2o 9 c gcc

任何人都可以告诉我,为什么在大火中GCC(例如4.4.3)没有警告或错误的错误调用Nullary函数?

void hello() {
}

int main( int argc, char* argv[] ) {
 int test = 1234;
 hello(test);

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

(另见http://bytes.com/topic/c/answers/893146-gcc-doesnt-warn-about-calling-nullary-function-parameters)

小智 12

因为:

void hello() {
Run Code Online (Sandbox Code Playgroud)

并不意味着你的想法.使用:

void hello( void ) {
Run Code Online (Sandbox Code Playgroud)

没有虚空,你说你不能打扰指定参数.请注意,这是C与C++不同的众多方式之一.


Pra*_*rav 11

在C中,void hello()声明一个hello()返回a void和take的函数unspecified number of arguments.

注意

在C++中,它们共同构成了一个不同的场景.void hello()在C++中声明一个hello()返回a void和take的函数no arguments.