【摘要】:不带参数的宏定义的一般形式为:前面介绍过的符号常量的定义就是一种不带参数的宏定义。例如:#define PI 3.1415926常对程序中反复使用的表达式进行宏定义。宏定义是用宏名代替字符串,宏展开时仅作简单替换,不检查语法。宏定义不是C语言的语句,后面不能有分号。通常把#define命令放在一个文件的开头,使其在本文件全部有效。#define定义的宏仅在本文件中有效,在其他文件中无效。宏定义终止命令#undef结束先前定义的宏。
不带参数的宏定义的一般形式为:
前面介绍过的符号常量的定义就是一种不带参数的宏定义。例如:
#define PI 3.1415926
常对程序中反复使用的表达式进行宏定义。
例如,#define M (y * y + 3 * y),用标识符M来代替表达式(y * y+3 * y)。
例8.1 使用不带参数的宏。
解题思路:
对程序中反复使用的表达式(y*y+3*y)进行宏定义。
编写程序:
创建一个名为“eg8_1.c”的新文件,在编辑窗口中输入下面的程序代码。
运行结果:
程序说明:(www.daowen.com)
程序中首先进行宏定义,定义M替代表达式(y*y+3 * y),在s = 3 * M + 4 * M + 5 * M中作了宏调用。在编译预处理时经宏展开后该语句变为:
s=3* (y*y+3*y) +4* (y*y+3*y) +5* (y*y+3*y);
说明:
(1)一般宏名用大写字母表示,变量名用小写字母表示。
(2)使用宏可以提高程序的可读性和可移植性。如代码段中,多处需要使用π值时,用宏名既便于修改又意义明确。
(3)宏定义是用宏名代替字符串,宏展开时仅作简单替换,不检查语法。语法检查是在编译时进行的。
(4)宏定义不是C语言的语句,后面不能有分号。如果加入分号,则连分号一起替换。
(5)通常把#define命令放在一个文件的开头,使其在本文件全部有效。 #define定义的宏仅在本文件中有效,在其他文件中无效。
(6)宏定义终止命令#undef结束先前定义的宏。
例如:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关C语言程序设计应用教程的文章