一直都以为C/c++中形如
int func ();
这样的函数声明其意义就是一个参数无效(没有参数)的函数。然而今天在看c++的时候突然看到这么一句:
对于带空参数表的函数,C和c++有很大的不同,在C语言中,声明 int func2 (); 表示,“一个可带任意参数(任意数目,任意类型)的函数”。这就妨碍了类型检查。而在c++语言中它就意味着“不带参数的函数”。
这一点老师并没有讲到,学校教科书里也没有提到,带着好奇心,我特意试了一下
<强> test.c 强>
# include & lt; stdio.h> 空白有趣(); int main () { 有趣的(1,1); 返回0; } 无效的乐趣(int, int b) { printf (" % d \ n”, a + b); }
编译通过 美元gcc - wall测试。c - o测试 美元。/测试2
美元mv测试。c test.cpp 美元g++ - wall测试。cpp - o测试 测试。cpp:在函数的int main()”中: 测试。cpp: 6:10:错误:太多的参数函数void乐趣()的 有趣的(1,1); ^ 测试。cpp:三6:附注:在此声明 空白有趣(); ^ ~ ~
这也解释了为什么主函数要写成这样的原因
int主要(空白)
以上这篇详谈C与c++的函数声明中省略参数的不同意义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。