1、使用原则:非必要情况下不使用宏定义:理由如下:
(1)因为编译器在处理源代码之前,该宏定义里面的东西就被预处理器取走,如该宏定义
#define ASPECT_RATIO 1.653
ASPECT_RATIO可能没有进入记号表,当运用该常量运行出现编译错误信息时,错误信息可能会提到1.635而不会提到ASPECT_RATIO,因此在非定义该宏的文件进行调试时,无法确定1.635来自何处。
总而言之,难于调试。
(2)用宏定义函数时,容易出错,形式较为复杂,例如:
#define CALL_WITH_MAX