在C语言中,#define
指令是预处理指令,用于定义宏。其常用格式是:
-
定义常量:
#define 常量名 常量值
例子:
#define PI 3.14159 #define MAX_SIZE 100
这里,
PI
和MAX_SIZE
在代码中会被替换为其对应的值。没有类型检查,也没有内存分配,只是简单的文本替换。 -
定义宏函数: 宏函数允许使用参数,形式如下:
#define 宏名(参数列表) 表达式
例子:
#define SQUARE(x) ((x) * (x))
在使用时,
SQUARE(5)
会展开为((5) * (5))
。注意括号的使用是为了避免运算优先级的问题。 -
带条件的宏: 宏也可以用于条件编译,比如:
#ifdef 宏名 // 当宏名已定义时编译的代码 #endif
例子:
#define DEBUG #ifdef DEBUG printf("Debug mode\n"); #endif
如果定义了
DEBUG
,则会打印"Debug mode"。
注意事项:
#define
不会分配内存,只是简单的文本替换。- 使用宏函数时,最好用括号包裹参数和整个表达式,防止运算优先级错误。