当前位置: 首页 > news >正文

C语言编译预处理3

条件编译:是对源程序的一部分指定编译条件,满足条件进行编译否则不编译。

形式1

#indef  标识符

   程序段1

#else

  程序段2

#endif

标识符已经被定义用#ifdef

#include <stdio.h>

// 可以通过注释或取消注释下面这行来控制是否定义 DEBUG 宏
// #define DEBUG  定义标识符的操作 

#ifdef DEBUG
    // 如果已经定义 DEBUG 宏,执行此程序段
    #define MESSAGE "当前处于发布版本,无调试信息。"
#else
    // 如果未定义了 DEBUG 宏,执行此程序段
    #define MESSAGE "当前处于调试版本,可输出详细信息。"
#endif

int main() {
    printf("%s\n", MESSAGE);
    return 0;
}

形式2

#ifndef    标识符 

     程序段1 

#else 

     程序段2

#endif        

标识符未被定义用#indef

#include <stdio.h>

// 可以通过注释或取消注释下面这行来控制是否定义 DEBUG 宏
// #define DEBUG

#ifndef DEBUG
    // 如果未定义 DEBUG 宏,执行此程序段
    #define MESSAGE "当前处于发布版本,无调试信息。"
#else
    // 如果定义了 DEBUG 宏,执行此程序段
    #define MESSAGE "当前处于调试版本,可输出详细信息。"
#endif

int main() {
    printf("%s\n", MESSAGE);
    return 0;
}
//针对标识符DEBUG是否被定义,得到MESSAGE的值

形式3

#if   常量表达式

  程序段1

#else

 程序段2

#endif

如上所得若常量表达式为真执行程序1,否则执行程序2。

#include <stdio.h>

// 定义常量表达式的值
#define VERSION 2   //常量表达式被定义

#if VERSION == 1
    // 当 VERSION 等于 1 时,编译此程序段
    #define MESSAGE "这是版本 1 的程序。"
#elif VERSION == 2
    // 当 VERSION 等于 2 时,编译此程序段
    #define MESSAGE "这是版本 2 的程序。"
#else
    // 当 VERSION 既不等于 1 也不等于 2 时,编译此程序段
    #define MESSAGE "未知版本的程序。"
#endif

int main() {
    printf("%s\n", MESSAGE);
    return 0;
}
该程序输出   "这是版本 2 的程序。"

相关文章:

  • 展示数据可视化的魅力,如何通过图表、动画等形式让数据说话
  • 面试篇 - GPT-3(Generative Pre-trained Transformer 3)模型
  • 探索QEMU-KVM虚拟化:麒麟系统下传统与云镜像创建虚拟机的最佳实践
  • 26-JavaScript简介和基本使用(JavaScript)
  • 面试篇 - GPT-1(Generative Pre-Training 1)
  • 【分享】Ftrans文件摆渡系统:既保障传输安全,又提供强集成支持
  • 【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(一)
  • 机器视觉用消色差双合透镜
  • RockyLinux9 部署 Zabbix7 完整步骤
  • Springboot下载文件, 文件名中文是乱码, 空格变加号
  • Web前端开发——超链接与浮动框架(下)
  • 机器学习项目一:虚假新闻检测
  • yum安装MySQL数据库
  • MCP协议实战指南:在VS Code中实现PostgreSQL到Excel的自动化迁移
  • Unified Modeling Language,统一建模语言
  • centOS 安装和配置docker
  • 《探秘鸿蒙分布式软总线:开启无感发现与零等待传输新时代》
  • 3.7 字符串基础
  • 树莓派第5代主板连接cis摄像头
  • Python学习笔记(列表相关操作)
  • 商务部:支持外籍医生开设诊所,优化罕见病药品进口抽检模式
  • 央媒聚焦人形机器人:为何发展突然加速?中国制造有何优势?
  • 淄博张店区国资公司挂牌转让所持“假国企”股权,转让底价为1元
  • 鲁比奥称“美或退出俄乌谈判”,欧洲官员:为了施压乌克兰
  • 大理州工业投资(集团)有限公司党委副书记、副总经理赵云接受审查调查
  • 同比增长4.2%!一季度全国财政支出持续增长