- 相关推荐
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 。
【C 语言中宏的使用】相关文章:
c语言中指针的使用方法03-20
c语言中关于使用BF-KMP算法实例04-01
C语言宏定义07-01
C语言中使用快速排序算法对元素排序的实例03-18
C语言中volatile的含义12-03
C语言中的链接编写05-26
C语言的宏定义分析03-30
C语言的assert断言宏12-03
C语言中的指针是什么03-17