宏定义
1.不带参数的宏定义
一般形式为:
#define 标识符 字符串
说明:
“#define”为宏定义命令;
“标识符”为自定义的宏名;
“字符串”为任意常数、表达式、字符串等
宏名就是自己定义的一个名称,一般采用所有字母均为大写的写法,便于与变量区别)
例如:
#include <stdio.h>
#define NUMBER 100
#define EXPRESSION 15*2+30
#define STRING "字符串"
main(void)
{
printf("%d,%d,%s", NUMBER, EXPRESSION, STRING);
}
说明:
(1)宏定义不是C语句,所以不用在行尾加分号,若加了分号,会在宏展开时将分号当作要替换的数据进行替换
(2)在宏展开时,预处理程序仅仅进行简单的替换宏名,不会做任何检查,因此要注意按照格式严格书写
2.带参数的宏定义
一般形式为:
#define 宏名(形参表) 字符串
程序中引用带参宏的一搬形式为:
宏名(实参表)
例如:
#define SUM(x) x*3+x
main(void)
{
int sum = 0;
sum = SUM(4);
}
说明:
(1)在字符串中含有各个形参
(2)在宏调用时,用实参4去替换形参x,经预处理宏展开后的语句为:sum=4*3+4