6 宏
6.1 减少宏的使用
等级: 【建议】说明:宏的使用,将使得调试变得麻烦。所以在设计和使用宏的时候,请确保宏的逻辑是阅读者不会去关心细节的行为。
6.2 宏定义中字母需大写
等级: 【必须】说明:为了醒目表示它是一个宏,而不是一个函数。
6.3 使用const变量代替宏定义值
等级: 【建议】说明:在一个函数体内部使用的常量,最好使用const变量替代,而不是使用宏。
6.4 使用枚举代替一系列有关联的宏
等级: 【建议】说明:比如一个函数返回一系列表示状态的宏,则应该使用枚举类型替代。
6.5 宏的参数使用时需要使用括号控制
等级: 【要求】说明:对宏的参数使用括号控制,可以避免操作符的优先级对逻辑的影响。
6.6 宏定义中不要依赖于全局变量
等级: 【要求】说明:如果宏定义中修改了全局变量,将导致对这个变量的调试变得非常麻烦。
6.7 复杂的宏定义使用do-while控制
等级: 【要求】说明:如果宏中有复杂的逻辑跳转,或者有临时变量的定义,请使用do-while将宏内容扩住。这样可以减少宏对使用宏的逻辑的影响。