C 语言 - 预处理器和宏

预处理器和宏

在 C 语言中,预处理器在实际编译开始之前运行。它处理诸如包含文件和定义之类的事情。

预处理器的命令以 # 符号开头,被称为指令

#include - 包含头文件

您已经多次看到 #include 指令——它告诉编译器包含一个文件。

它用于添加库或自定义头文件:

实例

#include <stdio.h>
#include "myfile.h"

对于标准库,使用尖括号 < > 对于您自己的文件,使用双引号 " "

提示:最常用的库可以在我们的 C 参考文档 中找到。

#define - 创建宏

宏是一个名称,代表一个值(如 PI)或一段代码,使用 #define 指令定义。

在下面的示例中,PI 在程序编译前被替换为 3.14

这意味着每当代码中出现 PI,它都会被替换为 3.14

实例

#define PI 3.14

int main() {
  printf("Value of PI: %.2f\n", PI);
  return 0;
}

亲自试一试

宏也可以像函数一样接受参数:

实例

#define SQUARE(x) ((x) * (x))

int main() {
  printf("Square of 4: %d\n", SQUARE(4));
  return 0;
}

亲自试一试

带参数的宏像快捷方式一样工作,但要小心使用括号以避免错误。

#ifdef 和 #ifndef - 条件编译

#ifdef#ifndef 指令允许您根据宏是否被定义来包含或跳过部分代码。

这被称为条件编译,对于调试或创建程序的不同版本很有用。

实例

#define DEBUG

int main() {
  #ifdef DEBUG
    printf("Debug mode is ON\n");
  #endif
  return 0;
}

亲自试一试

如果定义了 DEBUG,将打印该消息。如果未定义,则该部分代码被跳过。

创建您自己的头文件

在下一章中,您将学习如何创建自己的头文件,并使用 "模块化编程" 在多个文件中组织代码。