c++预处理器 1. #表示预处理符号 2. #if…#endif是C++种的条件编译预处理命令
有两种格式:
1:
#ifdef 标示符 程序段1 #else 程序段2 #endif
表示:如果标示符已经被#define命令定义过,则编译程序段1,否则编译程序段2
2:
#if 表达式 程序段1 #else 程序段2 #endif
表示:如果表达式为真,则编译程序段1,否则编译程序段2.
3. 参数宏
可以使用 #define 来定义一个带有参数的宏。
#include <iostream>using namespace std;//参数宏MIN(a,b)#define MIN(a,b) (a<b ? a : b)int main (){ int i, j; i = 100; j = 30; cout <<“较小的值为:” << MIN(i, j) << endl; return 0;}//输出结果为:30 4. # 和 ## 运算符
使用范围:
#和 ## 预处理运算符在 C++ 和 ANSI/ISO C 中都是可用的。
区别:
1、#运算符会把 replacement-text 令牌转换为用引号引起来的字符串。
2、##运算符用于连接两个令牌。
例子:
#include <iostream>using namespace std;#define MKSTR( x ) #xint main (){ cout << MKSTR(HELLO C++) << endl; return 0;}//输出结果为:HELLO C++ #include <iostream>using namespace std;#define concat(a, b) a ## bint main(){ int xy = 100; cout << concat(x, y); return 0;}//输出结果为:100