摘要:本篇C/C++知识点教程将为大家讲解C与C++的函数声明中省略参数的不同意义,看完这篇文章会让你对C/C++语言编程的知识点有更加清晰的理解和运用。
本篇C/C++知识点教程将为大家讲解C与C++的函数声明中省略参数的不同意义,看完这篇文章会让你对C/C++语言编程的知识点有更加清晰的理解和运用。
一直都以为C/C++中形如
int func();
这样的函数声明其意义就是一个参数 void(没有参数)的函数。然而今天在看C++的时候突然看到这么一句:
对于带空参数表的函数,C和C++有很大的不同。在C语言中,声明int func2();
表示“一个可带任意参数(任意数目,任意类型)的函数”。这就妨碍了类型检查。而在C++语言中它就意味着“不带参数的函数”。
这一点老师并没有讲到,学校教科书里也没有提到,带着好奇心,我特意试了一下
test.c
1 #include <stdio.h> 2 3 void fun(); 4 int main() 5 { 6 fun(1, 1); 7 8 return 0; 9 }10 11 void fun(int a, int b)12 {13 printf("%d\n", a+b);14 }
编译通过
$ gcc -Wall test.c -o test
$ ./test
2
$ mv test.c test.cpp
$ g++ -Wall test.cpp -o test
test.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)
以上,关于C/C++知识点的全部内容讲解完毕啦,欢迎大家继续关注!更多关于C/C++知识点的干货请关注职坐标C语言频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号