宏优点
- 代码复用性
- 提高性能
宏缺点
- 不可调试(预编译阶段进行了替换),
- 无类型安全检查
- 可读性差,容易出错。
这里附上《c和指针》中的一张表格,总结宏和函数十分到位,我就不多说了
#define定义一个比如判断大小,替换常量,很是方便。
不过现在也就用下,#define ERROR_POWEROFF -1,#define _CRT_SECURE_NO_WARNINGS 1这样的和编译器有关的东西,不会去写宏函数,宏函数这东西,可读性特别差,在c++中,一般用const/枚举/内联去替代宏。
但是,define宏在某些方面真的是非常好用
1.替代路径
#define ENG_PATH_1 C:\Program Files (x86)
2.针对编译器版本不兼容报错
#define _CRT_SECURE_NO_WARNINGS 1
3.条件编译
#ifdef 标识符
程序段 1
#else
程序段 2
#endif
4.使用库中的宏
vc++中有许多有意思的宏,都是大牛们写出来的,真的是充满智