内存空间
1. 头文件
1.头文件中可以包含的内容
2.生存期 、作用域 、连接性
3.自动变量的存储
自动变量采用栈的方式进行存储。
4.静态变量
1.静态变量如果没有显示的初始化,将被初始化为0
5.连接性为外部变量
1.定义声明
//file1
int a;
2.引用声明
//file2
extern int x;//
//如果extern int x = 1;则相当于定义
7.存储说明符&CV限定符
auto //用于类型自动推断
register //寄存器变量
static //放在函数内部表示为静态存储,放在函数外边表示连接性为内部
extern //代表引用其他地方的值
thread_local //应用于线程,就像普通程序里面的静态变量
mutable//
//CV限定符
const //不可修改的变量,符号常量
volatile
//有时候,程序会把对此读取到的变量进行缓存,而不是直接从内存中进行读取,
//这时候,如果是串口数据,那么读取到的值将不会根据串口输入而变化,volatile告诉编译器不要进行这种优化。
8.函数和链接性
1.默认情况下,所有的函数都为静态存储,外部链接性。
2.可以在函数原型中使用extern关键字表明函数在其他文件中定义(可选的,因为链接时,会去寻找函数的定义)
3.可以增加static关键字说明函数连接性为内部。
4.内联函数不遵守单定义规则吗,其可以包含在每一份源代码中,但是每一份的定义必须相同。
9.语言连接性
10.动态内存分配
1.通常,编译器 使用三块内存:一块用于静态变量,一块用于自动变量,一块用于动态存储。
11.定位NEW运算符