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

C语言 条件编译宏

一、具体代码与分析如下

#include <stdio.h> /* 1.C语言的条件编译宏是预处理阶段的指令,用于根据指定条件决定代码段是否参与编译; 2.#ifdef MACRO/#endif:判断 MACRO 是否被#define定义; 3.#ifndef MACRO/#endif:判断 MACRO 是否未被定义; 4.#if/#elif/#else/#endif:判断常量表达式是否为真; 5.#if defined(MACRO):结合#if和定义判断。 */ int main() { /*********************************/ #undef DEBUG #define DEBUG #ifdef DEBUG printf("#define DEBUG 输出\n"); #endif //结束条件编译块,是必备的闭合指令 /*********************************/ #undef DEBUG1 #ifndef DEBUG1 printf("#undef DEBUG1 输出\n"); #endif //结束条件编译块,是必备的闭合指令 /*********************************/ #define PLATFORM 3 //#undef PLATFORM #if PLATFORM == 1 #define OS "Linux" #elif PLATFORM == 2 #define OS "Windows" #elif PLATFORM == 3 #define OS "macOS" #else #define OS "Unknown" #endif /* #define PLATFORM 1 输出OS为:"Linux" #define PLATFORM 2 输出OS为:"Windows" #define PLATFORM 3 输出OS为:"macOS" 都不定义 输出OS为:"Unknown" */ printf("OS:%s\n",OS); /*********************************/ //#define ARMv7 #define ARMv8 #if defined(ARMv7) || defined(ARMv8) #define HAS_CAN 1 #define HAS_ETH 1 #elif defined(x86) #define HAS_CAN 0 #define HAS_ETH 0 #endif /* #define ARMv7 或 #define ARMv8输出OS为:"HAS_CAN:1,HAS_ETH:1" #define x86 输出OS为:"HAS_CAN:0,HAS_ETH:0" 都不定义 输出OS为:"Unknown" */ printf("HAS_CAN:%d,HAS_ETH:%d\n", HAS_CAN, HAS_ETH); return 0; }
http://www.jsqmd.com/news/226238/

相关文章:

  • 基于SpringBoot的考编论坛网站毕业设计源码
  • 内网渗透中的“眼睛”与“耳朵”:工作组信息收集技术全解析
  • 至理名言【人生智慧】
  • GDAL 实现矢量裁剪
  • 基于SpringBoot的足球社区管理系统毕业设计
  • 基于SpringCloud的在线交易电商平台毕业设计
  • 基于html5的网上团购系统设计与实现毕业论文+PPT(附源代码+演示视频)
  • 基于SpringBoot的养老院管理系统毕设
  • 基于SpringBoot的新能源充电系统毕业设计
  • 基于SpringBoot的校园失物招领系统毕设
  • A.每日一题——1161. 最大层内元素和
  • 数据结构————栈
  • 亲测好用10个AI论文工具,MBA论文写作必备!
  • 基于Simulink的智能车辆雨天行驶仿真
  • stm32处理器对中断的响应说明
  • 教AI学会说“我是小喵“竟然这么神奇?LlamaFactory微调揭秘
  • 基于Simulink的车与行人(V2P)通信仿真(行人预警场景)
  • exe打开应用程序无法启动,因为应用程序的并行配置不正确
  • 华为研究团队突破代码修复瓶颈,8B模型击败32B巨型对手!
  • 基于Simulink的智能车辆雨天行驶仿真(感知与控制)
  • 2026继续教育必备10个降AI率工具测评榜单
  • [转]5 个很火火的个人 AI 知识库 GitHub 项目,收藏一波。
  • ios应用为什么需要“签名”?揭开苹果签名的神秘面纱,从原理到方案一次讲透
  • 全网最全2026本科生AI论文网站TOP9测评
  • 北京做牙冠一颗多少钱
  • AU-48双麦+USB全能语音模组:解锁全场景语音交互新体验
  • 学Simulink--V2X通信场景实例:基于Simulink的车与行人(V2P)通信仿真(行人预警场景)
  • 学Simulink--特殊天气场景实例:基于Simulink的智能车辆雨天行驶仿真(感知与控制)
  • AU48 语音处理模组:全双工通话设备的性能升级优选方案
  • git创建远程分支、分支合并、删除分支