
| 条件编译指令 | 说 明 |
|---|---|
| #if | 如果条件为真,则执行相应 *** 作 |
| #elif | 如果前面条件为假,而该条件为真,则执行相应 *** 作 |
| #else | 如果前面条件均为假,则执行相应 *** 作 |
| #endif | 结束相应的条件编译指令 |
| #ifdef | 如果该宏已定义,则执行相应 *** 作 |
| #ifndef | 如果该宏没有定义,则执行相应 *** 作 |
#if 条件表达式
程序段1
#else
程序段2
#endif
注意,必须使用 #endif 结束该条件编译指令。
例如:
#include<stdio.h>#define RESulT 0//定义 RESulT 为 0int main (voID){ #if !RESulT //或者 0==RESulT printf("It's False!\n"); #else printf("It's True!\n"); #endif //标志结束#if return 0;}上述程序中,首先定义了 RESulT 为 0,在 main 中使用 #if-#else-#endif 条件判断语句,如果 RESulT 为 0,则输出 It's False!,否则输出 It's True!。本例输出为:It's False!。#ifndef-#define-#endif其调用格式为:
#ifndef 标识符
#define 标识符 替换列表
//...
#endif
例如:
#ifndef PI#define PI 3.1416#endif上述程序段,用于判断是否已经定义了名为 PI 的宏,如果没有定义 PI,则执行如下宏定义。
#define PI 3.1416如果检测到已经定义了 PI,则不再重复执行上述宏定义。
该条件编译指令更重要的一个应用是防止头文件重复包含。
如果 f.c 源文件中包含 f1.h 和 f2.h 两个头文件,而 f1.h 头文件及 f2.h 头文件中均包含 x.h 头文件,则 f.c 源文件中重复包含 x.h 头文件。可采用条件编译指令,来避免头文件的重复包含问题。所有头文件中都按如下格式:
#ifndef _headname_H_
#define _headname_H_
//头文件内容
#endif
#if-#elif-#else-#endif其调用格式为:
#if 条件表达式1
程序段 1
#elif 条件表达式2
程序段 2
#else
程序段3
#endif
#ifdef-#endif其调用格式为:
#ifdef 标识符
程序段
#endif
例如:
#ifdef N#undef N //程序段#endif功能:如果检测到符号 N 已定义,则删除其定义,并选中相应的程序段。
总结
以上是内存溢出为你收集整理的条件编译,C语言条件编译详解全部内容,希望文章能够帮你解决条件编译,C语言条件编译详解所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)