C++ 宏定义
1. 宏定义的优点
- 1.方便程序的修改
使用简单宏定义可用宏代替一个在程序中经常使用的常量,这样在将常量改变时,不用对整个程序进行修改,只需修改宏定义的字符串即可;当常量比较长时,也可以用较短的有意义的标识符来写程序。 - 2.提高程序的运行效率
2. 与全局变量的区别
- 宏定义在>编译期间就会使用并替换,而全局变量要到运行时才可以;
- 宏定义的只是一串字符,在编译的时候被替换到引用的位置。在运行中是没有宏定义的概念的。而变量在运行是要为其分配内存;
- 宏定义不可以被赋值,即其值一旦定义就不可修改,而变量在运行过程中可以被修改;
- 宏定义只有在定义所在文件,或引用所在文件的其他文件中使用。而全局变量可以在工程所有文件中使用,只要在使用前加一个声明就可以了。换句话说,宏定义不需要 extern。
3. 使用方式
#define 标识符 字符串
写宏的时候,尽量用括号将变量给括起来,以防止边际效应---->#define 标识符 (字符串)
#define Traffic_IN_A (1U)
#define Traffic_IN_A1 (1U)
#define Traffic_IN_A2 (2U)
#define Traffic_IN_B1 (3U)
这里的 U 表示该常数用无符号整型方式存储,相当于 unsigned int;
L 表示该常数用长整型方式存储,相当于 long;
F 表示该常数用浮点方式存储,相当于 float。