存储说明符或cv-限定符
来源:互联网 发布:索尼smartwatch2 软件 编辑:程序博客网 时间:2024/05/18 03:07
存储说明符
c++有关提供存储信息的关键字有如下几个:
- auto(在c++11中不再是说明符,用于自动类型判断)
- register(寄存器变量,c++11显示地指出自动变量)
- static(静态持续变量)
- extern(引用外部变量声明)
- thread_local(c++11新增,指出变量的持续性和线程的持续性相同。关系类似于静态持续变量之于整个程序。)
- mutable(即使结构或类中的变量为const,其某个成员也可以被修改)
限定符
cv-限定符:
- const
- volatile
1.再谈const
在c++(而不是c语言中)中,const 限定符对默认的存储类型稍有影响。在默认情况下,全局变量具有外部链接性,而使用了const 进行修饰的全局变量的链接性改为内部链接性,即只能在本文件中使用。在这种情况下,如果希望此常量的链接性是外部的,则必须在使用该常量的其他文件中使用 extern 来进行引用声明。
2.关键字:volatile
关键字volatile表明,即使程序代码没有对内存单元进行修改,其值也会发生变化。该关键字的作用是为了改善编译器的优化。例如,编译器发现,程序在几条语句中使用了同一个变量的值两次,但是中间代码没有对该变量的值进行过修改,如果此时变量没有声明成 volatile 类型,那么编译器在第二次使用该变量的值时,将进行优化,直接从存储该值的缓冲寄存器取值,但是若声明为 volatile 类型,那么第二次使用该值时,程序将和第一次使用该变量一样,也从该变量地址处取值,此时相当于告诉编译器不要进行优化。
3.关键字:mutable
关键字mutable表明,即使结构或类中的变量为const,其某个成员也可以被修改。示例如下:
struct data{ char name[20]; mutable int grade;}....const data one={"david",90};one.name="mary"; //不合法的one.grade++; //合法的
阅读全文
0 0
- 存储说明符或cv-限定符
- C++说明符和CV限定符
- 存储说明符和限定符
- 变量存储说明符,限定符,类型转换
- 说明符和限定符
- 10.CV限定符
- 7.1.5.1 cv限定符
- const限定符和constexpr说明符--C++11
- const限定符和constexpr说明符--C++11
- 存储限定符volatile
- error: 此类型没有存储类或类型说明符
- error C2501: “CDlgActForm::vector” : 缺少存储类或类型说明符
- 此声明没有存储类或类型说明符?
- The New C++ -- 变量(4. const限定符和constexpr说明符 )
- C++关键字-const与volatile限定说明符
- C++关键字-存储说明符
- JNIEXPORT 报错:此声明没有存储类或类型说明符
- C存储类型和类型限定符
- 从上往下打印二叉树
- tensorflow学习笔记(五):cnn
- hdu-6165 FFF at Valentine
- 微信js开发出现 errMsg: "config:invalid signature"错误
- C++——USACO Section 1.5 题解
- 存储说明符或cv-限定符
- C++ cons
- Vue2.0在工程中加入vue-resource--一个简单示例
- FZU
- 数据库设计时遇到的几种数据类型
- 堆排序
- 一个例子让你秒懂机器学习
- 指针相关
- Druid自动增加timestamp字段