条件编译
条件编译:有时希望程序其中的一部分只有在满足一定条件时才进行编译,否则不参与编译
条件编译有以下几种形式:
1.#if 常量表达式
程序段
#endif
作用:如果常量表达式为真(非零),则相应的程序段被编译,否则跳过它
例如:
#define MAX 100
main(){
#if MAX>90
printf("Hello\n");
#endif
}
注意:常量表达式是在编译时求值得,因此它只能由事先定义的宏名和常量组成,而不能出现变量。
2. #if 常量表示式
程序段1
#else
程序段2
#endif
3. #if 常量表达式1
程序段1
#elif 常量表达式2
程序段2
#elif 常量表达式2
程序段3
...
#else
程序段n
#endif
4.# ifdef 宏名
程序段
#endif
作用: 如果已经定义了相应的宏名,则编译相应的程序段,否则跳过它。
5. #ifdef 宏名
程序段1
#else
程序段2
#endif
6. #ifndef 宏名
程序段1
#else
程序段2
#endif
作用:如果没有定义相应的宏名,编译程序段1,否则编译程序段2