预处理器指令线包含在编码之前的哈希签名方案(#)。这些线是不是程序语句但对预处理指令。预处理器的汇编代码检查代码的实际开始之前解决所有这些指令之前的任何代码实际上是通过定期生成报表。
这些预处理器指令扩展只在一个单一的代码行。一旦遇到一个换行符,预处理器指令结束。没有分号(;)预计将在预处理器指令结束。预处理器指令可以通过多个行的唯一方法是前面的换行符结束时的线由一个反斜杠(\)。
啊,我们可以用#定义预处理宏定义。它的语法是:
#定义标识符替换
当处理器遇到这个指令,它取代发生置换在剩下的代码标识符。这种替换可以是一个表达式,语句,一块或是什么。预处理器不理解C++适当,它简单地取代任何发生的标识符替换。
1
2
3
#define TABLE_SIZE 100
int table1[TABLE_SIZE];
int table2[TABLE_SIZE];
他 将 取代 任何 发生的 getmax 之后 用 双 参数 替换 的 表达, 但也 由 其 replacing 每个 参数的 标识符, 如果 是 你 会 期望 它是 的函数 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// function macro
#include <iostream>
using namespace std;
#define getmax(a,b) ((a)>(b)?(a):(b))
int main()
{
int x=5, y;
y= getmax(x,2);
cout << y << endl;
cout << getmax(7,x) << endl;
return 0;
}