首页 > 技术文章 > 条件编译 预处理命令

CCCrunner 2018-09-25 20:50 原文

C语言以#开头,以换行符结尾的行称为预处理指令
1)宏定义
#define
#undef
2)文件包括
#include
3)条件编译
#if
#ifdef
#else
#elif
#endif
4)其他
#line
#error
#pargma

有些语句希望在条件满足时才编译。
格式:(1)

#ifdef 标识符
程序段1
#else
程序段2
#endif

#ifdef
程序段1
#endif

当标识符已经定义时,程序段1才参加编译。

格式:(2)

#ifndef 标识符
#define 标识1
程序段1
#endif

如果标识符没有被定义,则重定义标识1,且执行程序段1。
格式:(3)

#if 表达式1
程序段1
#elif 表达式2
程序段2
……
#elif 表达式n
程序段n
#else
程序段n+1
#endif

当表达式1成立时,编译程序段1,当不成立时,编译程序段2。
使用条件编译可以使目标程序变小,运行时间变短。
预编译使问题或算法的解决方案增多,有助于我们选择合适的解决方案。
此外,还有布局控制:#pragma,这也是我们应用预处理的一个重要方面,主要功能是为编译程序提供非常规的控制流信息。

来源:

https://baike.baidu.com/item/%E9%A2%84%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4/10204389?fr=aladdin

推荐阅读