在C语言#define机制中包括了一个规定,与允许把参数替换到文本中,这种实现通常称为宏或宏定义。下面是宏的声明方式:
#define name(parameter-list) stuff
其中 parameter-list的左括号必须与name紧邻,如果中间有空白,parameter-list就会被解释为stuff的一部分。
宏的作用
1.替换作用:在程序中使用宏可以进行快速的替换。
2.执行简单的计算使用宏在程序的规模和速度方面都更胜一筹。
3.条件编译:可以通过宏来选择某些语句进行翻译或者忽略。
下面是一个示例小程序:
1 #include<stdio.h> 2 3 #define NUMBER 5 4 #define SQUARE(x) (x)*(x) 5 #define ON 6 7 void main() 8 { 9 int t=NUMBER; 10 int m=SQUARE(t); 11 12 #ifdef ON 13 printf("%d ",m); 14 #else 15 printf("%d ",t); 16 #endif 17 18 }
运行结果:
两种情况分别是对ON进行声明和不声明的结果。
注意事项:
1.定义宏时在行末不必加分号,如果有分号则连分号也一起替换。
2.如果是带参数的宏定义,则要给宏定义中的每个参数加上括号,并在宏完整定义上再加一个括号。