博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
条件编译
阅读量:7060 次
发布时间:2019-06-28

本文共 1135 字,大约阅读时间需要 3 分钟。

所谓“条件编译”,是对部分内容指定编译的条件,使其只在满足一定条件才进行编译。

常用形式

多条件编译

#if defined(MACRO1) || defined(MACRO2)    code#elif defined(MACRO3)    code#endif

常用格式

#ifdef MACRO    code#else    code#endif
#ifndef MACRO    code#else    code#endif
#if 表达式    code#else    code#endif

示例

#include 
#include
#define BUF_LEN 256int main(){ char buf[BUF_LEN]; snprintf(buf, sizeof(buf), "%s", "default");#if defined(POWER) || defined(PPP)//#if define POWER//#ifdef POWER snprintf(buf, sizeof(buf), "%s", "POWER||PPP");#elif defined(PPPOE) snprintf(buf, sizeof(buf), "%s", "PPPOE");#endif printf("power:%s\n", buf); return 0;}

执行结果:

yuxi@ubuntu:~/test/macro$ gcc -DPPP define.c yuxi@ubuntu:~/test/macro$ ./a.out power:POWER||PPPyuxi@ubuntu:~/test/macro$ gcc -DPPPOE define.c yuxi@ubuntu:~/test/macro$ ./a.out power:PPPOEyuxi@ubuntu:~/test/macro$ gcc define.c yuxi@ubuntu:~/test/macro$ ./a.out power:default

 

常见的预处理指令

  1. #空指令,无任何效果
  2. #include包含一个源代码文件
  3. #define定义宏
  4. #undef取消已定义的宏
  5. #if如果给定条件为真,则编译下面代码
  6. #ifdef如果宏已经定义,则编译下面代码
  7. #ifndef如果宏没有定义,则编译下面代码
  8. #elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
  9. #endif结束一个#if……#else条件编译块
  10. #error停止编译并显示错误信息

参考:

 

转载地址:http://foyll.baihongyu.com/

你可能感兴趣的文章
自建Saltstack的repo软件源仓库
查看>>
Domino和Java技术杂烩
查看>>
Ext.class源码
查看>>
EXCHANGE 备忘
查看>>
Windows Server 2003应用宝典
查看>>
DAM2加密狗克隆的具体解决方案
查看>>
教你深入系统的学习linux系统
查看>>
前台向后台隐藏传参数
查看>>
Oracle10g手工创建数据库
查看>>
JS下载文件
查看>>
Nginx 模块常用命令介绍
查看>>
thinkphp5.0框架swoole的使用
查看>>
继上一篇SQL练习题,给出答案
查看>>
慕课网-Java从零打造企业级电商项目实战_项目初始化_项目结构
查看>>
Esper学习笔记二:进程模型
查看>>
Linux环境PHP7.0安装
查看>>
Reactor 响应式编程
查看>>
使用mimipenguin实现从当前 Linux 用户转储登录密码
查看>>
Guitar Pro 6手机版-安卓版-ios版地址
查看>>
CentOS 系统限制普通用户切换到 root 管理员账号
查看>>