ifndef用法

ifndef用法背景 最近工作上需要针对 yolov5 的 tensorrt 的接口进行编写 在看代码的时候遇到了一些问题 然后记录下来 每天进步一点点 困惑点 如下所示 代码中为什么要有这样的结构呢 编写头文件 test h 时 在头文件开头写上两行 如下 ifndef TEST H define TEST H 内容 头文件结尾写上一行 endif 原因 防止重复被引用举例说明 假设你的工程里面有 4 个文件 分别是 a cpp b h c h d h

背景:

最近工作上需要针对yolov5的tensorrt的接口进行编写,在看代码的时候遇到了一些问题,然后记录下来,每天进步一点点.

困惑点:

如下所示,代码中为什么要有这样的结构呢?

编写头文件test.h时,在头文件开头写上两行,如下: #ifndef __TEST_H #define __TEST_H " ...... #内容 ...... " 头文件结尾写上一行: #endif

原因:

防止重复被引用

举例说明:

因此,不管你的头文件会不会被多个文件引用,你都要把头文件的内容放在#ifndef和#endif中。  

使用说明:

一般使用格式:

#ifndef 
  <标识>
    #define 
   <标识>
     ...... ...... #endif 
    <标识> 
     
    
  

在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h   

#ifndef   _STDIO_H_    #define   _STDIO_H_    ......    #endif 

参考资料:

https://blog.csdn.net/yapingmcu/article/details/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216447.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午11:50
下一篇 2026年3月18日 上午11:50


相关推荐

  • 美国目前最流行的五种量化交易模型[通俗易懂]

    美国目前最流行的五种量化交易模型[通俗易懂]01、股票多空策略股票多空策略(EquityLong/Short),即买一些股票,通过融券的方式去卖空一些股票,然后再用一些股指期货进行对冲。这是国际上主流的HedgeFund所用的量化策略,据知名数据商Eurekahedge的统计数据,在国际对冲基金中长期占比第一(一直超过30%)。比如2011年获得美国量化基金业评比第一名的贝莱德“32Cap全球对冲基金产品”使用的就是经典的多空策略…

    2022年6月26日
    74
  • 安卓framework面试题(高级Android面试题)

    Framework面试题 Android 系统基础 JVM、Dalvik和ART是什么以及他们的关系 01 Binder机制 02 系统级app和第三方应用级app分别在什么目录下?system/priva-app和system/app目录的权限有什么…

    2022年4月16日
    42
  • 最详细的maven配置——报错了你打我[通俗易懂]

    最详细的maven配置——报错了你打我[通俗易懂]目录1、前言2、下载3、配置PATH、settings.xml以及本地仓库3.1、配置path3.2、配置settings.xml和本地仓库4、在IDEA中配置Maven1、前言maven说的简短一点就是一个大型的jar包管理工具,类似于工具人。只要有了maven,就不用去幸幸苦苦的找jar包了。wc,爽哉。好了,还是不多bb,我么还是直接干正事。(切记切记:安装maven必须装好jdk)2、下载首先我们还是去官网。瞅瞅最新版的是哪个版本。点我直达当然,玩Windows的人都知道,我们下

    2022年5月28日
    54
  • 赚一个亿真的不难,不信你看下面代码

    赚一个亿真的不难,不信你看下面代码privatevoidComputeActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:if(Salary.getText().isEmpty()||Aim.getText().isEmpty()||Saving.getText().isEmpty()){..

    2022年6月12日
    31
  • 数据结构:图(Graph)【详解】

    数据结构:图(Graph)【详解】图【知识框架】【考纲内容】图的基本概念图的存储及基本操作邻接矩阵法;邻接表法;邻接多重表;十字链表图的遍历深度优先搜索;广度优先搜索图的基本应用最小(代价)生成树;最短路径;拓扑排序;关键路径图的基本概念在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关。图是一种较线性表和树更加复杂的数据结构。

    2022年6月28日
    30
  • 前端的浅拷贝和深拷贝区别_解构赋值是深拷贝还是浅拷贝

    前端的浅拷贝和深拷贝区别_解构赋值是深拷贝还是浅拷贝一、浅拷贝和深拷贝的区别数据都是存储在内存当中,而我们调用数据的时候都是通过地址来调用数据。对于浅拷贝来说,比如一个数组,只要我们修改了一个拷贝数组,那么原数组也会改变!vara=[0,1,2,3,4];varb=a;console.log(b);//[0,1,2,3,4]console.log(a);//[0,1,…

    2026年4月19日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号