宏不是C的语句,所以结尾不用分号,在C的编译器开始编译之前,编译预处理程序会把程序中的名字替换成值。
它长这样:
# define <名字> <值>
注意哦名字必须是一个单词,这个单词之后的任何东西都是这个宏的值,如果一个宏的值中有其他宏的名字,也是会被替换的,如果一个宏的值超过一行,最后一行之前的行末需要加\ ,宏的值后面出现的注释不会被当作是宏的一
#include <stdio.h>
#define PI 3.14
#define FORMAT "%f\n"
#define PI2 2*PI //pi*2
#define PRT printf("%f ",PI );\
printf("%f",PI2)
int main(int argc,const char *argv[])
{
PRT;
return 0;
}
部分。
关于带参数的宏
#include <stdio.h>
#define cube(x)((x)*(x)*(x))
int main(int argc,const char *argv[])
{
printf("%d",cube(5));
return 0;
}
宏定义时的括号很重要,每个参数都要用括号括起来,带参数的式子也要用括号