宏的优缺点?
优点:
1.增强代码的复用性。
2.提高性能。
缺点:
1.不方便调试宏。(因为预编译阶段进行了替换)
2.导致代码可读性差,可维护性差,容易误用。
3.没有类型安全的检查 。
C++有哪些技术替代宏?
- 常量定义 换用const
- 函数定义 换用内联函数
宏函数优缺点
优点:预处理阶段替换,少了函数调用过程开销,代码效率高
缺点:不是真正的函数,预处理阶段展开,不参与编译参数类型检查
不方便调试,代码膨胀。
#define Max(a,b) a>b?a:b
Max(++a,b)
内联函数优缺点
优点:编译阶段 编译器将内联函数展开 少了函数调用开销,参与编译,类型检测 安全性高
缺点:代码膨胀 函数不要有循环 递归