定义
由三部分组成 #define WIDTH 960
预处理指令 宏名 替换体(
多行可用
\
延续
)
#include <stdio.h>
#include <stdlib.h>
#define _width 1024 //宏命名规则同变量名
#define ADDR "中华人民共和国湖南\
省平江县"
int main(void){
printf("width: %d\n", _width);
printf("我的祖籍: %s\n", ADDR);
system("pause");
return 0;
}
什么是宏?
是一种预处理器指令,在预编译阶段将宏名替换为后面的替换体
好处
提高代码的可读性和可维护性
避免函数调用,提高程序效率
使用
1.不带参数的宏
2.在宏中使用参数
#include <stdio.h>
#include <stdlib.h>
// 不带参数的宏
#define _width 1024
#define ADDR "中华人民共和国湖南\
省平江县"
#define MARTIN 王鹏程
// 带参数的宏
#define SQUARE(x) (x)*(x)
#define MAX(x,y) x>y?x:y
int main(void){
printf("width: %d\n", _width); // 宏展开相当于
printf("width: %d\n", 1024);
printf("我的祖籍: %s\n", ADDR);
//printf("我的名字: %s", MARTIN); // 宏展开相当于 printf("我的名字: %s", 王鹏程); 会报错
int i = 10;
int j = SQUARE(i); // 宏展开 j = i*i;
printf("j: %d\n", j);
printf("MAX(i,j):%d\n", MAX(i, j)); //宏展开
printf("MAX(i,j):%d\n", i>j?i:j);
int z = SQUARE(2+3); // (2+3)*(2+3) = 25
printf("z: %d\n", z);
system("pause");
return 0;
}