4.10.2.2定义带参宏 define macro name (arg list) text 其中, arg list为宏的形参表。例如: # efine MA(xy)(x)>=()?(x):(y) 这时,宏MAX就如同一个带参数的内联函数。例如: m= MAX(a, b); cout < MAX(3*i/k, 4+j*k)<<endl 注意:由于带参宏出现二义性的可能性更大,所以在实用中建 议多用内联函数而少用带参宏
4.10.2.2 定义带参宏 #define macro_name(arg_list) text 其中,arg_list 为宏的形参表。例如: #define MAX(x, y) ((x) >= (y) ? (x) : (y)) 这时,宏 MAX 就如同一个带参数的内联函数。例如: m = MAX(a, b); cout << MAX(3 * i / k, 4 + j * k) << endl; 注意:由于带参宏出现二义性的可能性更大,所以在实用中建 议多用内联函数而少用带参宏
4.10.2.3# undef指令 #undef macro name 该指令的作用是撤消对宏 macro name的定义。例如: #define MAXLEN 512 ∥对宏 MAXLEN的一些应用 #undef MAXLEN #define MAXLEN 128 ∥对宏 MAXLEN的一些应用
4.10.2.3 #undef 指令 #undef macro_name 该指令的作用是撤消对宏 macro_name 的定义。例如: #define MAXLEN 512 // 对宏 MAXLEN 的一些应用 #undef MAXLEN #define MAXLEN 128 // 对宏 MAXLEN 的一些应用
4.10.3条件编译 条件编译指令是用来控制编译器有选择地对源程序进行编译 的。它们指示编译器可以忽略除#,#idef,# ifndef,#elf 和#endf指令外的所有预处理指令,以及由于条件编译指令 的结果而不用参加编译的行
4.10.3 条件编译 条件编译指令是用来控制编译器有选择地对源程序进行编译 的。它们指示编译器可以忽略除 #if,#ifdef,#ifndef,#elif 和 #endif 指令外的所有预处理指令,以及由于条件编译指令 的结果而不用参加编译的行
4.10.3.1#f,#ei,#else和# endif条件指令 这几条预处理指令与C++语言中的语句类似。例 #include <iostream.h> define NUM 100 void maino #fNUM==100 cout <<This line is compiled\n ielse cout <<This line is not compiled fendi
4.10.3.1 #if,#elif,#else 和 #endif 条件指令 这几条预处理指令与 C++ 语言中的 if 语句类似。例: #include <iostream.h> #define NUM 100 void main() { #if NUM == 100 cout << "This line is compiled\n"; #else cout << "This line is not compiled\n"; #endif }
4.10.3.2#fdef,# ifndef指令和 defined运算符 这几条指令可以用来测试某个宏是否定义,进而决定编译器的 下一步操作。例: ∥/ MYHEAD.H #ifndef MYHEAD H #define MYHEAD H ∥文件 MYHEAD H中的内容 fendi 等价表示: 注意:在较新的C++标准中, #de和# Ifndef预处理指令是 ∥/ MYHEAD.H 为保持兼容性而保留的,新标 # f !defined MYHEAD H准推荐使用 defined运算符 #define MYHEAD H ∥文件 MYHEADH中的内容#def→># defined fendi # ifndef→>#f! defined
4.10.3.2 #ifdef,#ifndef 指令和 defined 运算符 这几条指令可以用来测试某个宏是否定义,进而决定编译器的 下一步操作。例: // MYHEAD.H #ifndef _MYHEAD_H_ #define _MYHEAD_H_ // 文件 MYHEAD.H 中的内容 #endif 等价表示: // MYHEAD.H #if !defined _MYHEAD_H_ #define _MYHEAD_H_ // 文件 MYHEAD.H 中的内容 #endif 注意:在较新的 C++ 标准中, #ifdef 和 #ifndef 预处理指令是 为保持兼容性而保留的,新标 准推荐使用 defined 运算符。 #ifdef → #if defined #ifndef → #if !defined