正在加载图片...
几点说明: 1.宏定义必须以“注意:由于编译器在宏替换时是逐级进行 均属于宏定义 的,所以在定义宏时要防止出现二义性。 例如,若将宏 THREE定义成: define TRUE define THREE ONE TWO 将使得编译器把宏则赋值语句: 2.宏定义的替换正 i= THREE* 3: # efine_MYHE将使i的值为7,而不是预期的9。 这里,将标识符N编译器对该语句的解释过程为: 编译预处理指令进 i=1+2*3 3.替换正文可以是 i=1+6 #define UL 7 4.一个已存在的宏可以用作另一个宏定义的替换正文: define THREE (ONE TWO)几点说明: 1. 宏定义必须以“回车”结束,“回车”符前边所有的字符 均属于宏定义: #define TRUE 1; 将使得编译器把宏 TRUE 解释成 1;。 2. 宏定义的替换正文可以为空: #define _MYHEAD_H_ 这里,将标识符 _MYHEAD_H_ 作为一个标志,以便于条件 编译预处理指令进行测试。 3. 替换正文可以是 C++ 语言的关键字: #define UL unsigned long int 4. 一个已存在的宏可以用作另一个宏定义的替换正文: #define THREE (ONE + TWO) 注意:由于编译器在宏替换时是逐级进行 的,所以在定义宏时要防止出现二义性。 例如,若将宏 THREE定义成: #define THREE ONE + TWO 则赋值语句: i = THREE * 3; 将使 i 的值为 7,而不是预期的 9。 编译器对该语句的解释过程为: i = ONE + TWO * 3; i = 1 + 2 * 3; i = 1 + 6; i = 7;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有