📅  最后修改于: 2023-12-03 14:59:52.490000             🧑  作者: Mango
在C++中,预处理器是一种特殊程序,它负责将源代码中的指定字符序列替换为另一字符序列。预处理器指令都以字符 #
开头,用于告诉编译器在编译源代码之前要做些特定的事情,比如定义常量、包含头文件、开启某些编译选项等。
使用 #define
宏定义指令可以定义一个常量或宏。格式如下:
#define identifier replacement
其中 identifier 是常量的名称,replacement 是常量的值。例如:
#define PI 3.1415926
#define MAX(a,b) ((a)>(b)?(a):(b))
第一个宏定义了常量 PI,第二个宏定义了一个带参数的宏 MAX,它会返回两个参数中较大的数。
使用 #include
头文件指令可以在当前文件中插入一个头文件的内容。格式如下:
#include <filename>
#include "filename"
其中 <>
表示系统头文件,包含在标准库中,而 ""
表示用户头文件,包含在用户我们自己编写的文件中。例如:
#include <iostream>
#include "myHeader.h"
第一个指令包含了标准库中的 iostream
文件,第二个指令包含了我们自己编写的 myHeader.h
文件。
使用 #ifdef
、#ifndef
和 #endif
条件编译指令可以根据宏定义的条件来判断是否编译某些代码。格式如下:
#ifdef identifier
// 代码块1
#else
// 代码块2
#endif
#ifndef identifier
// 代码块1
#else
// 代码块2
#endif
其中 #ifdef
判断宏定义是否被定义,#ifndef
判断宏定义是否未定义。例如:
#define DEBUG 1
#ifdef DEBUG
// 执行调试代码
#else
// 执行正式代码
#endif
#ifndef DEBUG
// 执行正式代码
#else
// 执行调试代码
#endif
使用 #undef
取消一个预定义的宏定义。格式如下:
#undef identifier
例如:
#define PI 3.1415926
#undef PI