C和C++的区别主要分为三部分:
接下来详细介绍一下函数部分的区别
1、返回类型
2、参数列表
此外,在C++中还支持缺省参数,而C语言不支持。
什么是缺省参数呢?
缺省参数是声明或定义时为函数的参数指定一个默认值。在调用函数时,如果没有指定实参,则采用该默认值,否则使用指定的的实参。
缺省参数又分为全缺省参数和半缺省参数。
全缺省参数:参数列表的每一个参数都给一个默认值。
半缺省参数:从参数列表的右边从右至左依次连续给出默认值(但不是没有参数都给)
举个例子:
void FunTest(int a, int b = 2; int c = 3 )√
void FunTest(int a = 2, int b; int c = 3 )×
注意:
1)、带缺省值得参数必须放在参数列表的后边
2)、缺省参数不能再声明和定义中同时给出,一般在声明时给出
3)、缺省值必须是常量会全局变量
4)、缺省参数必须提通过值参或常参传递
3、函数重载
什么是函数重载呢?
函数返回值可相同也可以不相同
为什么C++支持函数重载而C语言不支持呢?
往下看
4、调用函数时对函数名的改写
在C语言中,在调用函数时对函数名的改写就是直接在函数名的前边加一个_,举个例子(函数名:FunTest 改写后:_FunTest)。这样就导致了编译器就只能通过函数名来辨认一个函数,当有多个函数的函数名一样时就不知道调用哪个了。
在C++中,在对函数名改写的时候会将函数的参数列表和返回值做特殊处理。如下图(VS编译器下):
PS:欢迎提出宝贵意见,谢谢!