详细的网站规划建设方案服务器,青岛公司注册,武胜网站建设,洛阳青峰网络一直都以为C/C中形如int func();这样的函数声明其意义就是一个参数 void(没有参数)的函数。然而今天在看C的时候突然看到这么一句#xff1a;对于带空参数表的函数#xff0c;C和C有很大的不同。在C语言中#xff0c;声明int func2();表示“一个可带任意参数(任意数目#…一直都以为C/C中形如int func();这样的函数声明其意义就是一个参数 void(没有参数)的函数。然而今天在看C的时候突然看到这么一句对于带空参数表的函数C和C有很大的不同。在C语言中声明int func2();表示“一个可带任意参数(任意数目任意类型)的函数”。这就妨碍了类型检查。而在C语言中它就意味着“不带参数的函数”。这一点老师并没有讲到学校教科书里也没有提到带着好奇心我特意试了一下test.c#include void fun();int main(){fun(1, 1);return 0;}void fun(int a, int b){printf(%d\n, ab);}编译通过$ gcc -Wall test.c -o test$ ./test2$ mv test.c test.cpp$ g -Wall test.cpp -o testtest.cpp: 在函数‘int main()’中:test.cpp:6:10: 错误too many arguments to function ‘void fun()’fun(1, 1);^test.cpp:3:6: 附注在此声明void fun();^~~这也解释了为什么主函数要写成这样的原因int main(void)