理论教育 C语言程序设计应用教程:不带参数宏定义

C语言程序设计应用教程:不带参数宏定义

时间:2023-11-21 理论教育 版权反馈
【摘要】:不带参数的宏定义的一般形式为:前面介绍过的符号常量的定义就是一种不带参数的宏定义。例如:#define PI 3.1415926常对程序中反复使用的表达式进行宏定义。宏定义是用宏名代替字符串,宏展开时仅作简单替换,不检查语法。宏定义不是C语言的语句,后面不能有分号。通常把#define命令放在一个文件的开头,使其在本文件全部有效。#define定义的宏仅在本文件中有效,在其他文件中无效。宏定义终止命令#undef结束先前定义的宏。

C语言程序设计应用教程:不带参数宏定义

不带参数的宏定义的一般形式为:

前面介绍过的符号常量的定义就是一种不带参数的宏定义。例如:

#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结束先前定义的宏。

例如:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈