【C++语言99个常见编程错误】第3章 预处理器问题

来源:互联网 发布:网络安全保卫局副局长 编辑:程序博客网 时间:2024/06/09 19:27

3章 预处理器问题

#define定义的字面量

预处理器对于C++的代码作用域和类型规则完全不知,#define的作用域并未限定在名字空间中

对于平凡整型常量来说,使用传统枚举量是最佳的选项

#define定义的伪函数(函数宏)

C++inline函数几乎是任何时候都是更好的选择,相对于函数宏

宏做伪函数时,也有显式常量的作用域问题

#if的滥用

编译器会剔除#if 中的不可达代码,但还会对这些代码做一次完整的语法分析和静态语义检验

#if用于可移植性代码

断言的副作用

使用assert由于使用注释来文档化前置条件、后置条件和不变量。

assert到底也只是一个伪函数,也有伪函数的种种问题