📜  C语言中的#define与#undef(1)

📅  最后修改于: 2023-12-03 14:40:27.480000             🧑  作者: Mango

C语言中的#define与#undef

介绍

在C语言中,#define#undef是预处理器指令,用于定义和取消定义宏。

#define指令

#define指令用于定义一个宏。语法如下:

#define 宏名 替换文本

宏名可以是任何标识符,替换文本可以是任何文本。替换文本可以是算术表达式、字符串字面量、函数调用等。

下面是一些例子:

#define PI 3.14159
#define MSG "Hello, world!"
#define MAX(x, y) ((x) > (y) ? (x) : (y))

上述三个宏分别定义了一个常量、一个字符串,以及一个函数式宏。

在代码中使用宏时,预处理器会将宏名替换为其对应的替换文本。例如:

float radius = 10.0;
float circumference = 2 * PI * radius;
printf("%s\n", MSG);
int x = 10, y = 20;
int max = MAX(x, y);

在程序执行前,预处理器会将代码中的宏替换为其对应的替换文本。上述代码实际执行的是:

float radius = 10.0;
float circumference = 2 * 3.14159 * radius;
printf("%s\n", "Hello, world!");
int x = 10, y = 20;
int max = ((x) > (y) ? (x) : (y));
#undef指令

#undef指令用于取消已定义的宏。语法如下:

#undef 宏名

例如:

#define DEBUG
#ifdef DEBUG
printf("Debug information\n");
#endif
#undef DEBUG

在上述代码中,#ifdef指令用于判断宏是否已经定义。如果已经定义,则输出调试信息。然后,使用#undef指令取消宏的定义,使其不能再使用。