内存模型

C++也支持用register关键字来声明局部变量。关键字提醒编译器用户希望通过CPU寄存器,而不是内存堆栈来处理变量,从而提供对变量的快速访问。如果变量被存储在寄存器中,则没有内存地址,因此不能将地址操作符用于寄存器变量。

作用域描述了名称在文件的多大范围可见。
链接性描述了名称如何在不同单元间共享,链接性为外部的名称可以在文件间共享,链接性为内部的名称只能由一个文件中的函数共享。
要创建外部链接性的静态持续变量,需要在代码块的外面声明它;
要创建内部链接性的静态持续变量,需要在代码块的外面声明它,并用static限定符;
要创建没有链接性的静态持续变量,需要在代码块的内部声明它,并用static限定符;
未被初始化的静态变量的所有位都被置为零,只能用常量表达式(字面值常量、const常量、enum常量和sizeof操作符)来初始化静态变量。
静态局部变量只在声明该变量的代码块中可用,但它在该代码块不处于活动状态时仍然存在,因此两次函数调用之间,静态局部变量的值将保持不变。
对于外部链接性变量,有且只有一个文件中包含了该变量的外部定义,其他文件要使用该变量,必须在引用声明中使用关键字extern。
定义声明:给变量分配存储空间。
引用声明:不给变量分配存储空间,因为它引用已有的变量,需要加关键字extern。
此外,引用声明中指定的类型必须和定义声明中相同,不能在引用声明中进行初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值