荟萃馆

位置:首页 > 计算机 > C语言

C 语言中宏的使用

宏的主要作用是在编译预处理时,对程序中所有出现的“宏名”都用宏定义中的字符串去代换 。

C <a href=语言中宏的使用" title="C 语言中宏的使用">

宏定义是由源程序中的宏定义命令完成的,宏代换是由预处理程序自动完成的。在 C 语言中,“宏”分为有参数和无参数两种,即分别简称为有参宏和无参宏。

无参宏

无参宏的宏名后不带参数,其定义的一般形式为:

#define 标识符 字符串

其中的 “#” 表示这是一条预处理命令,凡是以 “#” 开头的均为预处理命令。“define” 为宏定义命令,“标识符” 为所定义的宏名称,“字符串” 可以是常数、表达式、格式串等 。

#include#define NUM 4int main(int argc, const char * argv[]) { int a = 4;

a *= NUM; printf("%d ", a); return 0;

}

运行结果:16 。这里可以看出我们定义了一个宏名称为 NUM 的宏,当 main 中代码出现 NUM 的地方,就会自动用数字 4 进行替换,这样做的好处是当代码中多处存在同一变量时,只需要修改宏 NUM 的值即可,而无需在代码中一处处的'进行修改 。

  有参宏

C 语言允许宏带有参数,在宏定义中的参数称为形式参数,宏调用中的参数称为实际参数 。

对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参 。

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

#define 宏名(形参表) 字符串

示例代码:

#include#define SUM(a) a+aint main(int argc, const char * argv[]) { int a = SUM(4); printf("%d ", a); return 0;

}

运行结果:8 。这里可以发现 SUM 将 4 传入,通过 a + a ,即 4 + 4 = 8 。

标签:中宏 语言