C++基础篇(四)--C++相对于C语言的实用性加强、register加强、变量检测增强

实用性增强

C语言中变量必须被定义在作用域的开始位置
C++则更强调语言的实用性,所有的变量可以在需要时再进行定义

Register关键字

早期的C语言编译器不会对代码进行优化,因此register变量是一个很好的补充。C语言中register关键字意为将变量放入寄存器当中,而在C语言中,无法取得register的地址,即:

register int a = 0;
//此句报错
printf("&a = %x\n",&a);

而在C++中,对编译器做了优化,即使不使用register关键字,编译器可能会自动进行优化。如:

for(int i = 0;i<10000;++i){
	cout<<i<<endl;
}

对于这种大量使用i的循环,c++编译器也会将其放到寄存器上以加快执行速度。

同时,C++中可以取得register变量的地址,但需要注意的是:当取register变量的地址时,register对变量的声明变得无效。

变量检测增强

在C语言中,重复定义多个同名的全局变量是合法的:

int g;
int g = 1;

多个同名的全局变量,最终会被链接到全局数据区的同一个地址空间上去。
而C++拒绝这种二义性的表达。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值