内存模型3
来源:互联网 发布:c 用什么软件编程 编辑:程序博客网 时间:2024/06/18 14:29
一、说明符和限定符
(1)auto(C++11中不再是说明符):用于自动类型推断;
(2)register:用于在声明中指示寄存器存储;
(3)static:当用于作用域为整个文件的声明中时,表示内部链接性;被用于局部声明中,表示局部变量的存储持续性为静态的;
(4)extern:表明是引用声明,即声明引用在其他文件定义的变量;
(5)thread_local(C++11新增):指出变量的持续性和所属线程的持续性相同;
(6)mutable
二、mutable
用mutable来指出,即使结构或类变量为const,它的某个成员也可以被修改。
例如:
struct data{ char name[30]; mutable int access;};const data v = { "James", 10 };strcpy(name, "John");//not allowedv.access++;//allowed
三、const
1、在默认情况在全局变量的链接性为外部,但是const全局变量的链接性为内部,即C++看来,全局const定义就像static说明符一样。
const int x = 10;//same as static const int x=10;int main(){ cout << x << endl;}
2、C++规定,将一组常量放在头文件中,并在同一个程序的多个文件中使用该头文件,则预处理器将头文件的内容包含到每个源文件中后,每个源文件都有类似下面的定义:
const int x=10;
只要两个源代码文件包含同一个头文件,则它们将获得同一组常量。
3、如果希望某个常量的链接性为外部的,可以使用extern来覆盖默认的内部链接性:
extern const int x=10;
四、动态分配
使用C++运算符new(或C语言中的malloc())分配的内存称为动态内存;
使用new来分配内存,相应地,使用delete来释放new分配的内存。
0 0
- 内存模型3
- 3、Java内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 内存模型
- 二级指针的3种内存模型
- 二级指针的3种内存模型
- 编程范式3 笔记 struct 内存模型
- 线程同步(3):内存模型及内存屏障详解
- 内存研究系列 - 内存模型
- Android Supported Media Formats安卓支持的影片格式(一)
- 移动 IOS7弹出提示
- 教你如何快速使用Github
- centos6.5 rsync+inotify实现服务器之间文件实时同步
- CCDrawPrimitives,CCDrawNode解析
- 内存模型3
- Linux的线程——轻进程
- JVM垃圾回收机制
- MySQL性能优化的最佳20+条经验
- 【HDOJ 4686】 Arc of Dream (矩阵快速幂)
- Leetcode: Roman to Integer
- VS2010统计程序代码总行数
- redis实战基础篇:redis的5种数据类型的基本操作
- interactive/non-interactive, login/non-login shells