前言
众所周知,c++是基于c语言的基础创造出来的,那么c++对比c语言哪些地方得到了优化呢,让我们一起来看看吧。
一、全局变量检测增强
c语言只对局部变量有重定义检测,对全局变量不会进行重定义检测,c++对此进行了优化。
代码如下:
int a = 10; //赋值,当做定义
int a; //没有赋值,当做声明
int main(){
printf("a:%d\n",a);
return EXIT_SUCCESS;
}
此代码在c下编译通过,在c++下编译失败,会显示重定义错误。
二、函数检测增强
1.参数类型检测
代码如下(示例):
void getRectS(w, h)
{
}
如图所示,该函数没有定义参数类型,在c语言中可以传递任何类型的参数,而在c++下会发生报错,c++要求必须明确函数参数类型。
2.返回值检测
代码如下(示例):
int getRectS(int w, int h)
{
}
如图,该函数设定的返回值为int型,而实际返回值为空,该写法在c语言下可以跑过,而在c++中则会发生报错,c++要求实际返回值类型必须和设定值类型相同。
3.传参个数检测
int getRectS(int w,int h)
{
return w+h;
}
void