#if…#endif用法总结

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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注