1.什么是宏
宏只做简单的文本替换,但一般在作为变量名出现或者在字符串中出现中是不会被替换的。
2.为什么要有宏?
(1)便于代码的可维护性,对宏的内容进行修改,即可修改代码中所有用到此宏地方的内容。
(2)方便阅读,见名知意。
3.宏的用法
3.1定义宏
格式:
#define 标识符 内容
3.2宏常量
#include <stdio.h>
#define M 1
int main()
{
int x = M;
printf("M=%d\n", M);
printf("M=%d\n", x);
return 0;
}
3.3“宏函数”
宏函数不是函数,和函数没有任何关系,在替换时也是进行简单的文本替换,不做任何运算。
在写宏时要把()带全,否则容易出现意想不到的结果。
#include <stdio.h>
#define DOUBLE(x) x*x
int main()
{
printf("%d\n", DOUBLE(10+1));//其实是:10+ 1*10 +1=21
return 0;
}
带全():
#include <stdio.h>
#define DOUBLE(x) (x)*(x)
int main()
{
printf("%d\n", DOUBLE(10+1));
return 0;
}