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

C语言中#ifndef的头文件保护用法和宏定义用法

文章目录

  • 头文件保护
  • 宏定义

#ifndef MY_HEADER_H
#define MY_HEADER_H// 这里放置头文件的内容#endif // MY_HEADER_H
#ifndef _error#define _error		(-1)
#endif

这两个代码块分别用于不同的目的。

头文件保护

#ifndef MY_HEADER_H
#define MY_HEADER_H// 这里放置头文件的内容#endif // MY_HEADER_H

这是头文件保护的典型用法。这种结构用于防止头文件被多次包含。当第一次包含头文件时,MY_HEADER_H 未被定义,因此 #define MY_HEADER_H 会定义它,并且在 #endif 处结束。之后再次包含头文件时,由于 MY_HEADER_H 已经被定义,#ifndef MY_HEADER_H 之后的内容将被跳过,防止重复定义。

宏定义

#ifndef _error#define _error (-1)
#endif

这段代码是为一个错误码定义了一个宏。如果在之前的代码中没有定义 _error,则 #define _error (-1) 会定义 _error 宏,并赋值为 -1。如果在之前的代码中已经定义了 _error,则这个宏定义将被忽略。

相关文章:

C语言中#ifndef的头文件保护用法和宏定义用法

文章目录 头文件保护宏定义 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内容#endif // MY_HEADER_H#ifndef _error#define _error (-1) #endif这两个代码块分别用于不同的目的。 头文件保护 #ifndef MY_HEADER_H #define MY_HEADER_H// 这里放置头文件的内…...

141.【Git版本控制-本地仓库-远程仓库-IDEA开发工具全解版】

Git-深入挖掘 (一)、Git分布式版本控制工具1.目标2.概述(1).开发中的实际常见(2).版本控制器的方式(3).SVN (集中版本控制器)(4).Git (分布版本控制器)(5).Git工作流程图 (二)、Git安装与常用命令1.Git环境配置(1).安装Git的操作(2).Git的配置操作(3).为常用的指令配置别名 (可…...

OpenCV快速入门:移动物体检测和目标跟踪

文章目录 前言一、移动物体检测和目标跟踪简介1.1 移动物体检测的基本概念1.2 移动物体检测算法的类型1.3 目标跟踪的基本概念1.4 目标跟踪算法的类型 二、差值法检测移动物体2.1 差值法原理2.2 差值法公式2.3 代码实现2.3.1 视频或摄像头检测移动物体2.3.2 随机动画生成的移动…...

针对操作系统漏洞的反馈方法

一、针对操作系统漏洞的反馈方法 漏洞扫描指基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。在进行漏洞扫描后,需先确定哪些是业务…...

常见的软件测试用例设计方法有哪些?

常见的软件测试用例设计方法,个人认为主要是下面这6种: 1)流程图法(也叫场景法) 2)等价类划分法 3)边界值分析 4)判定表 5)正交法 6)错误推测法 这6种常见方法中,我分别按照定义、应用场景、使用步骤、案例讲解…...

【24届校招】c++选手还有机会吗?如何选择更好的出路?

一、今年为什么c选手就业形势如此艰难? 去年c岗位的火热,不少c选手拿到高薪offer,今年转c的人群变多,内卷加剧,高学历大佬多如牛毛,很多比较好的c岗位多人投递,僧多肉少。 从行情来说&#xf…...

hvigor ERROR: Failed :entry:default@ProcessLibs...【鸿蒙开发-BUG已解决】

文章目录 项目场景:问题描述原因分析:建议的解决方案总结HarmonyOSArkTS项目场景: 项目无法在真机上运行。报错 hvigor ERROR: Failed :entry:default@ProcessLibs… hvigor ERROR: 2 file found in ‘lib/arm64-v8a/libagccrypto.so’. This may cause unexpected errors …...

由于没有公钥,无法验证下列签名: NO_PUBKEY

安装软件需要更新 sudo apt-get update 由于没有公钥,无法验证下列签名: NO_PUBKEY AA8E81B4331F7F50 NO_PUBKEY 112695A0E562B32A sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 3B4FE6ACC0B21F32 只需要把最后一部分搞成自己…...

vue3 for循环创建的多个e-form 添加校验

v-for 创建 ref <el-form :model"item" :rules"state.rules" :ref"el > getRiskSpreadRef(el, index)" ></el-form>// 定义ref list const riskSpreadRefList ref<HTMLElement[]>([]);// ref存到数组 const getRiskSpread…...

【虚拟机Ubuntu 18.04配置网络】

虚拟机Ubuntu 18.04配置网络 配置网络连接方式,查看自己网关 修改主机名 修改系统配置1. 配置网络连接方式,查看自己网关 选择虚拟机镜像设置网络连接模式,可以选择桥接或者NAT连接(我这里选择是NAT连接) 确定自己网关&#xff0c;可以在虚拟机 -》 编辑 -》虚拟网络编辑器…...

MySQL 中的 JSON_CONTAINS 函数详解

在处理 MySQL 中的 JSON 数据时&#xff0c;我们经常需要检查一个 JSON 文档是否包含特定的值。这时&#xff0c;JSON_CONTAINS 函数就显得非常有用。 JSON_CONTAINS函数介绍 JSON_CONTAINS 是 MySQL 提供的一个 JSON 函数&#xff0c;用于测试一个 JSON 文档是否包含特定的值…...

详细解答T-SNE程序中from sklearn.manifold import TSNE的数据设置,包括输入数据,绘制颜色的参数设置,代码复制可用!!

文章目录 前言——TSNE是t-Distributed Stochastic Neighbor Embedding的缩写1、可运行的T-SNE程序2. 实验结果3、针对上述程序我们详细分析T-SNE的使用方法3.1 加载数据3.2 TSNE降维3.3 绘制点3.4 关于颜色设置&#xff0c;颜色使用的标签数据的说明cy 总结 前言——TSNE是t-D…...

ClickHouse中的物化视图

技术主题 技术原理 物化视图&#xff08;Materialized View&#xff09;是一种预先计算并缓存结果的视图&#xff0c;存储在磁盘上自动更新&#xff0c;空间换时间的思路。物化视图是一种优化技术&#xff0c;本质上就是为了加速查询操作&#xff0c;降低系统负载&#xff0c…...

界面组件Telerik UI for WinForms中文教程 - 创建明暗模式的桌面应用

黑暗模式现在在很多应用程序中都挺常见的&#xff0c;但如何在桌面应用程序中实现它呢&#xff1f;这很简单&#xff0c;本文将为大家介绍如何使用一个类和命令行调用来实现&#xff01; Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件。所有的UI fo…...

C语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数

分析&#xff1a; 在主函数 main 中&#xff0c;程序首先定义一个字符变量 c&#xff0c;以及四个整型变量 letters、k、s 和 o&#xff0c;并初始化它们的值为 0。然后使用 printf 函数输出提示信息&#xff0c;让用户输入一行字符。 接下来&#xff0c;程序通过 while 循环结…...

王者荣耀java版

主要功能 键盘W,A,S,D键&#xff1a;控制玩家上下左右移动。按钮一&#xff1a;控制英雄发射一个矩形攻击红方小兵。按钮二&#xff1a;控制英雄发射魅惑技能&#xff0c;伤害小兵并让小兵停止移动。技能三&#xff1a;攻击多个敌人并让小兵停止移动。普攻&#xff1a;对小兵造…...

前缀和与差分

文章目录 前缀和一维前缀和公式CODE 二维前缀和公式CODE 差分一维差分思路作用CODE 二维差分思路CODE 前缀和 一维前缀和 板子题&#xff1a;https://www.acwing.com/activity/content/problem/content/829/ 公式 S [ i ] a [ i ] S [ i − 1 ] S[i] a[i] S[i - 1] S[i]…...

力扣hot100 滑动窗口最大值 单调队列

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f37b; AC code class Solution {public int[] maxSlidingWindow(int[] nums, int k){int n nums.length;int[] res new int[n - k 1]; // 单调递减队列int[] q new int[n];// q数组维护的是元素在 nums 数组对应的下标int…...

mysql MHA配置文件

[rootlocalhost mastermha]# cat app1.cnf [server default]默认服务器配置 check_repl_delay0 #默认值为1,表示如果slave中从库落后主库relay log超过100M&#xff0c;主库不会选 择这个从库为新的master&#xff0c;因为这个从库进行恢复需要很长的时间.通过设置参数check_r…...

策略算法与Actor-Critic网络

策略算法 教程链接 DataWhale强化学习课程JoyRL https://johnjim0816.com/joyrl-book/#/ch7/main 策略梯度 与前面的基于价值的算法不同&#xff0c;这类算法直接对策略本身进行近似优化。 在这种情况下&#xff0c;我们可以将策略描述成一个带有参数 θ θ θ的连续函数…...

Nginx性能优化-压缩

但很多开发者在配置nginx时容易混淆两个概念&#xff1a;Gzip动态压缩和Gzip静态压缩。本文将带你彻底搞懂这两者的区别、配置方法以及最佳实践。什么是Gzip动态压缩&#xff1f;原理&#xff1a; 当客户端&#xff08;浏览器&#xff09;发起请求时&#xff0c;Nginx接收到请求…...

DXVK:Linux平台Direct3D转Vulkan的技术革命

DXVK&#xff1a;Linux平台Direct3D转Vulkan的技术革命 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 项目价值定位&#xff1a;打破平台壁垒的图形转换层 &#x1f3…...

实战指南:基于快马平台用PostgreSQL的JSONB字段构建灵活的产品管理系统

今天想和大家分享一个实战项目经验&#xff1a;如何用PostgreSQL的JSONB字段为电商网站构建灵活的产品管理系统。这个方案特别适合产品属性差异大的场景&#xff0c;比如同时卖手机和书籍的电商平台。 为什么选择JSONB字段 电商网站经常遇到一个头疼问题&#xff1a;不同品类的…...

火灾现场的无人机防御系统

2026年&#xff0c;XPrize参赛团队将继续角逐&#xff0c;力争防控灾害于萌芽阶段。在外行人眼中&#xff0c;眼前这架Alta X无人机要完成的似乎并不是一项特别复杂的任务。这架翼展超2米的黑色大型四旋翼无人机停在草坪上&#xff0c;起落架两个撑脚之间挂着一个注满水的红色气…...

手机检测落地标准化:实时手机检测-通用模型企业级部署Checklist

手机检测落地标准化&#xff1a;实时手机检测-通用模型企业级部署Checklist 1. 引言&#xff1a;为什么企业需要标准化的手机检测方案&#xff1f; 想象一下&#xff0c;你是一家大型电子产品质检工厂的负责人。每天&#xff0c;成千上万的手机从流水线上经过&#xff0c;需要…...

解密Megatron-LM的显存魔法:从源码看recompute如何实现transformer大模型训练

Megatron-LM重计算技术深度解析&#xff1a;如何用显存优化训练千亿参数模型 当我们在谈论大模型训练时&#xff0c;显存管理就像高空走钢丝——稍有不慎就会因OOM&#xff08;内存溢出&#xff09;而崩溃。Megatron-LM作为NVIDIA开源的分布式训练框架&#xff0c;其重计算(re…...

RTKLIB数据处理避坑大全:从SPP/PPP精度对比到LAPACK库调用疑难解析

RTKLIB数据处理避坑大全&#xff1a;从SPP/PPP精度对比到LAPACK库调用疑难解析 当你在处理GNSS数据时&#xff0c;是否遇到过这样的困扰&#xff1a;明明按照教程一步步操作&#xff0c;结果却出现大量"飞点"&#xff0c;精度远不如预期&#xff1f;或者当你想要启用…...

实战应用:基于快马构建高保真抖音模块,为技术方案选型与竞品分析提供实例

最近在研究抖音最新版本的技术实现方案&#xff0c;发现用InsCode(快马)平台可以快速搭建一个高保真的功能模拟应用。这个实战项目不仅能帮助理解抖音的核心模块设计&#xff0c;还能为技术选型提供直观参考。下面分享下我的实现思路和关键要点&#xff1a; 智能推荐流实现 通过…...

PHP实现异步请求的四种方法

PHP中的cURL可用于发起 HTTP 请求&#xff0c;通常同步地等待服务器响应。如果你想要实现异步操作&#xff0c;即 PHP 程序继续执行而无需等待 cURL 请求完成&#xff0c;你可以考虑以下几种方式&#xff1a;使用curl_multicURL 提供了设置 curl_multi 和 curl_multi_exec 来同…...

应对复杂实战场景:基于快马平台生成动态网页爬虫完整解决方案

今天想和大家分享一个实战中的Python爬虫项目&#xff0c;主要解决动态渲染社交媒体网站的数据抓取问题。这类网站通常采用JavaScript动态加载内容&#xff0c;传统的requests库很难直接获取数据&#xff0c;需要借助浏览器自动化工具。 项目背景与难点分析 动态网页爬虫的核…...