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

news2024/11/13 7:54:54

目录

学习 #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");
#endif

	return 0;
}

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

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

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

#define WIN 0
int main()
{

#ifdef WIN
	printf("have windows\n");
#endif

	return 0;
}

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

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

结论:

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


使用 #ifndef 条件编译指令

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

#define WIN 0
int main()
{

#ifndef WIN
	printf("have windows\n");
#endif

	return 0;
}

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

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

结论:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123961.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录冲冲冲 Day41 动态规划Part9

188. 买卖股票的最佳时机 IV 昨天题目是买卖两次,这里是设定好k次 2次的时候一共包含了5中情况 那么k次就包含了2 k 1种情况 初始化只有1 , 3 ,5 也就是买入的状况是有值的,所以初始化时候只需要看这些情况知道2 k 之后只要把…

C++11(2)

目录 6。左值引用和右值引用 下面演示左值和左值引用: 下面演示右值和右值引用: 7。移动构造和移动赋值 VS2022的神级优化 List下的移动构造拷贝和深拷贝(实战) 证明:左值是由编译器决定的 附加:自己实现的List.h 6。左值引…

欺诈文本分类检测(十四):GPTQ量化模型

1. 引言 量化的本质:通过将模型参数从高精度(例如32位)降低到低精度(例如8位),来缩小模型体积。 本文将采用一种训练后量化方法GPTQ,对前文已经训练并合并过的模型文件进行量化,通…

fuxa搭建与使用(web组态)

1. 安装Node.js -> npm安装 参考网址:https://blog.csdn.net/WHF__/article/details/129362462 一、安装运行 C:\WINDOWS\system32>node -v v20.17.0 C:\WINDOWS\system32>npm -v 10.8.2 二、环境配置 在安装路径(D:\Program_Files\nodejs&a…

打开VSCod安装“PHP Intelephense”或“PHP Server”PHP扩展

安装PHP扩展: 打开VSCode,进入扩展视图(或使用快捷键CtrlShiftX)。搜索并安装“PHP Intelephense”或“PHP Server”等PHP相关扩展,这些扩展提供了PHP代码的智能感知、代码导航、调试等功能。 配置PHP路径:…

第2章 方法

本书作者起初以为仅靠研究命令行工具和指标就能提高性能。他认为这样不对。他从头到尾读了一遍手册,看懂了缺页故障、上下文切换和其他各种系统指标的定义,但不知道如何处理它们:如何从发现信号到找到解决方案。 他注意到,每当出…

第 8 章图像内容分类

本章介绍图像分类和图像内容分类算法。首先,我们介绍一些简单而有效的方法和目前一些性能最好的分类器,并运用它们解决两类和多类分类问题,最后展示两个用于手势识别和目标识别的应用实例。 8.1 K邻近分类法(KNN) 在…

2024最新精选文章!分享5款论文ai生成软件

在2024年,AI论文生成软件的出现极大地提升了学术写作的效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿,还能进行内容优化、查重和排版等操作。以下是五款值得推荐的AI论文生成软件,其中特别推荐千笔-AIPassPaper。 ### 千笔-AIPa…

shader 案例学习笔记之step函数

step函数 step(edge,x):当x>edge时返回1,否则返回0 #ifdef GL_ES precision mediump float; #endifuniform vec2 u_resolution;void main(){vec2 st gl_FragCoord.xy/u_resolution.xy;float f step(0.5, st.x);gl_FragColor vec4(f, 0, 0, 1.0); …

JQuery中的$

}); 当jquery.color.js动画插件加载完毕后,单击id为“go”按钮时,class为block的元素就有了颜色动画变化。 $.getJSON() $.getJSON()方法用于加载JSON文件,与$.getScript()方法的用法相同。 我们来看demo2. demo2.html 已有评论&#xff1…

Linux下如何使用CMake实现动态库的封装与调用

一、动态库的封装 1.创建工程 首先创建一个qt工程(这里我采用的是ui工程) 这里选择Widget工程 名字取一个和动态库相关的即可,我这里取的UIDLL 这里选择CMake 这里我选择命名为Dynamic kits采用Qt 5.14.2 GCC 64bit,之后直接下一…

Qt常用控件——QLabel

文章目录 QLabel核心属性文本格式演示显示图片文本对齐自动换行、边距、缩进设置伙伴 QLabel核心属性 QLabel是显示类控件,可以用来显示文本和图片 属性说明textQLabel中的文本textFormat文本格式Qt::PlainText纯文本Qt::RichText富文本(支持html标签&…

html+css网页设计 旅游 雪花旅行社5个页面

htmlcss网页设计 旅游 雪花旅行社5个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#…

Windows下meson编译libplacebo库

1、安装msys64,添加系统环境变量C:\msys64 2、修改msys64目录下msys2_shell.cmd文件: 去掉“rem set MSYS2_PATH_TYPEinherit” 中rem,以便于shell能继承系统环境变量,然后保存 rem To export full current PATH from environme…

ESP32 TCP通信交换数据Mixly Arduino编程

TCP通信交换数据 在ESP32与ESP32或其它局域网络内主机间传输数据时,TCP是很方便的,特别当我们连接互联网后ESPnow不能用,MQTT又不稳定发送大量的数据,同时蓝牙有其它用途时,那么学会TCP通信协议就变得十分重要。 一、…

Python数据结构集合的相关介绍

集合是一种无序、可变的数据结构,它也是一种变量类型,集合用于存储唯一的元素。集合中的元素不能重复,并且没有固定的顺序。在Python 提供了内置的 set 类型来表示集合,所以关键字set就是集合的意思。 你可以使用大括号 {} 或者 …

pytest 生成allure测试报告

allure的安装 github地址 allure资产列表 windows下载.zip,解压并配置环境变量PATH;linux下载tar.gz,解压配置; allure作为pytest插件 # 安装 pip install allure-pytest# 执行单元测试,生成allure测试数据&…

如何在内网中与阿里云服务器进行文件传输?[2024详细版]

随着云计算发展,企业和个人选择将数据存储在云端,以提高数据的安全性和可访问性。阿里云作为国内领先的云服务提供商之一,提供了多种云产品和服务。其中,云服务器ECS(Elastic Compute Service)因其灵活性和…

网络初识-相关概念

本篇主要介绍关于网络的相关概念~ 相关概念 局域网: 把几个电脑连接到一起,或者几台电脑连接到同一个路由器,就能构成局域网,局域网中的电脑可以相互通信。 广域网: 将多个局域网连接起来,就构成了范围更…

以一种访问权限不允许的方式做了一个访问套接字的尝试

System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试. 近来做的一个net core的网页,突然有这样的一个提示。上网查询之后,有二种可能,1,管理员角色运行VS2022后重新编译一下项目。2&#x…