编译器通过名称粉碎做到局部静态变脸不跨函数访问。
通过标志位使 静态局部变量初始化为静态值。
初始化在数据区的未初始化区。(因为初始化为0)

寄存器变量不能是 全局或者静态局部,占用时间过长
但是鸡肋得很。
宏定义
错误码宏


详细编码

1.数值型宏 编译器进行替换 编译途中生成.i文件,就是完全已经替换成功的文件、

2.表达式宏 需要注意的如下 是没有运算优先取舍的。

还有一个坑,也是直接展开,所以宏使用的时候记得用括号。


3.语句块宏
斜杠是续行符,其实也可以写成一行。

4.说明性宏,只做说明

5.兼容性宏 需要修改的时候不需要改太多代码,不同平台,提高兼容性

连接符

i在VC6是块块作用域,在VS2019是函数作用域

6.预编译宏
条件编译指令 也算是用来避免重复包含

为一则编译

用来控制编译分支
7.编译选项宏
编译前这个宏就准备好了,用来解决预编译宏的先后问题


#undef 取消定义 经常用于避免冲突(不晓得前面有没有定义)经常和编译选项宏走
8.编译内置宏 如下显示编译器版本

代码行为 .cpp
声明 .h 不要有实质性代码