预处理器可能是最好的思想作为一个独立运行的程序,在编译的时候你编译你的程序。它的目的是处理指令。指令的具体指令开始一个#符号和一个换行符结束(不是一个分号)。有几种不同类型的指示,我们将盖的下面。预处理器是不聪明,不理解C++语法;相反,它处理文本在编译器之前得到它。
包括
你已经看到了#包括指令的行动。#包括告诉预处理器将所包含的文件到当前文件的#点包括指令的内容。这是有用的当你的信息需要被包含在多个场合(如向前声明经常是)。
该#包括命令有两种形式:
#包括<文件>告诉编译器查找文件在一个特殊的地方在头文件的运行时库操作系统定义举行。
#包括";文件名";告诉编译器对寻找包含源文件做#目录文件包括。如果失败,它将相同的角括号的情况。
宏定义采取的形式:
#定义标识符替换
每当遇到这种预处理器指令,任何进一步发生identifier被置换取代。标识符是传统上键入字母全部大写,用下划线表示空格。
例如,考虑下面的代码片段:
|
1
2
3
|
#define
MY_NAME "Alex"cout
<< "Hello,
"
<< MY_NAME << endl; |
|
1
2
3
|
#define
MY_NAME "Alex"cout
<< "Hello,
"
<< "Alex"
<< endl; |
其中,当运行时,打印输出,你好,亚历克斯。
#定义了用这种方式有两个重要性质。首先,他们允许你给一个描述性的名字的东西,如一个数字。
例如,考虑下面的代码片段:
|
1
|
int
nYen = nDollars * 122; |
数如在上面的程序被称为神奇的数字122。一个神奇的数字是硬编码的数量在代码中没有任何上下文的122是什么意思?这是一个转换率?这是什么?它真的不清楚。在更复杂的程序,它往往是不可能知道一个硬编码的数字代表。
这段代码是清晰的:
|
1
2
|
#define
YEN_PER_DOLLAR 122int
nYen = nDollars * YEN_PER_DOLLAR; |
3311

被折叠的 条评论
为什么被折叠?



