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

C语言 ——— 学习并使用 #if defined #ifdef #ifndef 条件编译指令

目录

学习 #if defined #ifdef #ifndef 条件编译指令

使用 #if defined 和 #ifdef 条件编译指令

使用 #ifndef 条件编译指令


学习 #if defined #ifdef #ifndef 条件编译指令

#if #ifndef 条件编译指令是用来判断某个符号是否被定义过,被定义过的话就为真,没有被定义过就为假

#if defined 代码模板演示:  

#if defined(symbol)// ……
#endif

#ifdef 代码模板演示:

#ifdef symbol// ……
#endif

#ifndef 代码模板演示:

#ifndef symbol// ……
#endif

使用 #if defined 和 #ifdef 条件编译指令

#if defined 代码演示( symbol 被定义过时):

#define WIN 0
int main()
{#if defined(WIN)printf("have windows\n");
#endifreturn 0;
}

代码验证( symbol 被定义过时):

代码验证( symbol 未被定义过时):

#ifdef 代码演示( symbol 被定义过时):

#define WIN 0
int main()
{#ifdef WINprintf("have windows\n");
#endifreturn 0;
}

代码验证( symbol 被定义过时):

代码验证( symbol 未被定义过时):

结论:

由此可见,#if defined 和 #ifdef 这两个条件编译指令的作用是一样的


使用 #ifndef 条件编译指令

代码演示( symbol 被定义过时):

#define WIN 0
int main()
{#ifndef WINprintf("have windows\n");
#endifreturn 0;
}

代码验证( symbol 被定义过时):

代码验证( symbol 未被定义过时):

结论:

由此可见,#ifndef 条件编译指令 和 #ifdef 条件编译指令的作用刚好相反


http://www.mrgr.cn/news/24087.html

相关文章:

  • Ionic 头部和底部
  • 第 8 章图像内容分类
  • Apache License 2.0 和 MIT License 区别
  • 从数据洞察到智能决策:合合信息infiniflow RAG技术的实战案例分享
  • Linux环境常用的一些网络相关的命令
  • Selenium面试题(二)
  • Android大厂高频面试题解析,Android面试题及解析
  • Matlab -- meshgrid和peaks的用法
  • Android 知识简记 快速回顾各种知识
  • JavaScript将后端获取到的byte数组转为文件_byte数组转文件
  • C#迭代器方法和yield用法
  • 分类预测|基于雪消融优化BP神经网络的数据分类预测Matlab程序SAO-BP 多特征输入多类别输出 含基础程序
  • 线程的六种状态
  • Java重修笔记 第五十三天 坦克大战(一)绘图入门
  • Go语言现代web开发08 if和switch分支语句
  • 2024年智能录屏解决方案全攻略,从桌面到云端
  • K8s之DNS方案
  • Golang | Leetcode Golang题解之第397题整数替换
  • 8.10Laplacian算子
  • 『功能项目』播放动画时禁止点击移动【40】