【摘要】:由此可见,在使用宏定义时一定要考虑到替换后的实际情况,否则很容易出错。同一个宏名不能重复定义,除非两个宏定义命令行完全一致。替换文本不能替换双引号中与宏名相同的字符串。替换文本并不替换用户标识符中的成分。用作宏名的标识符通常用大写字母表示,这并不是语法规定,只是一种习惯。可用#undef命令终止宏定义的命令。
1.不带参数的宏定义命令行形式
#define宏名 替换文本
或
#define宏名
例如:
#defineSIZE50
说明:
(1)SIZE为宏名,是用户自定义标识符。在编译时,在此命令行之后,预处理程序对源程序中的所有名为SIZE的标识符用50这两个字符来替换,这个替换过程称为“宏替换”。
(2)替换文本中可以包含已定义过的宏名。例如:
程序中若有表达式:x=Three_ADDPI/2,则替换后,表达式将成为:x=(3*(3.14+1))/2。如果第二行和第三行中的“替换文本”不加括号,直接写成PI+1和3*ADDPI,则以上表达式展开后将成为=3*3.14+1/2。由此可见,在使用宏定义时一定要考虑到替换后的实际情况,否则很容易出错。(www.xing528.com)
(3)同一个宏名不能重复定义,除非两个宏定义命令行完全一致。
(4)替换文本不能替换双引号中与宏名相同的字符串。例如,如果YES是已定义的宏名,则不能用与它相关的替换文本来替换printf(“YES”)中的YES。
(5)替换文本并不替换用户标识符中的成分。
(6)在C语言程序中,宏定义的定义位置一般写在程序的开头。用作宏名的标识符通常用大写字母表示,这并不是语法规定,只是一种习惯。
(7)可用#undef命令终止宏定义的命令。
【程序实例】
程序运行结果为:
55
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。