1.不带参数宏定义
#define 标识符 待替换的字符串
例:#define MAX_LENGTH 80
(1) 集中放在程序的开始处
(2) 宏符号名用大写字母表示
(3) 宏定义行的未尾不要加分号
(4) 宏定义嵌套最在可达255级
(5) 可以在其前面加反斜杠(\)来明确指出一个宏符号名。
(6) 可在用预处理指令#undef宏符号名,来删除一个宏符号名。
eg:
#define MAX_LEN 80 /*定义最大长度为80*/
#define BUFFER_SIZE \MAX_LEN*20 /*定义缓冲区大小为80*20*/
#undef MAX_LEN /*删除上面定义的宏定义:最大长度*/
#define MAX_LEN 120 /*重新定义最大长度为120*/
2. 带参数的宏定义
#define 宏符号名(参数列表) 表达式
(1) 宏符号名和左括号必须紧紧相连,其间不能有空格,注释及诸如此类的字符串。
括号中,参数表里的参数被称为形式参数,在以后的程序中它们将被实际参数所贷替。
宏定义指令#defne要求在一行内写完,如一行内写不下时可在行未反斜杠"\"进行续行。
eg;
#define eq(a,b) a==b
#define ne(a,b) a!=b
int x,y,z;
x=y=1;
if(eq(x,y))
z=0;
else
z=20;