C语言头文件避免重复包含

  假定有以下几个头文件及其包含关系为:
  File1.h,file2.h,file3.h,file4.h,file5.h,main.cpp
  那么:file3.h包含file1.h,file2.h,file4.h包含file1.h,file2.h,file5.h包含file3.h,file4.h。如许就会导致在file5中对file1和file2的反复包含,编译时就会报错。
  解决方法:
  1:应用#ifndef
  #define
  #endif
  即每个文件在定义时都写成以下情势(以file1.h为例):
  #ifndefH_FILE1
  #defineH_FILE1
  #include
  #include
  …..
  #endif
  File3.h:#ifndefH_FILE3
  #defineH_FILE3
  #include
  #include
  #inlcude”file1.h”
  #include”file2.h”
  …..
  #endif
  方法二:在每个文件的头部定义:#pragmaonce(用于解释本文件中的内容只应用一次)
  例:fiel1.h:
  #pragmaonce
  #include
  #include
  …..
  File3.h:
  #pragmaonce
  #include
  #include
  #include”file1.h”
  …..

C语言头文件避免重复包含相关推荐

  1. ifndef/define/endif——主要目的是防止头文件的重复包含和编译

    原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...

  2. 如何防止头文件被重复包含、嵌套包含

    [转自] http://hi.baidu.com/zengzhaonong/blog/item/8a8871062d481f7f03088106.html #include文件的一个不利之处在于一个头 ...

  3. 如何防止头文件被重复包含或引用?

    一.#pragma once ( 比较常用) 只要在头文件的最开始加入这条指令就能够保证头文件被编译一次,这条指令实际上在VC6中就已经有了,但是考虑到兼容性并没有太多的使用. #pragmaonce ...

  4. 如何避免头文件被重复包含?

    在实际的工程中我们很有可能重复包含某一个头文件,比如下面这种情况: 开发人员B和开发人员C在自己的头文件中都包含了开发人员A的头文件,而开发人员D在自己的编译单元中包含了B和C的头文件,此时D就相当于 ...

  5. C语言头文件.h互相包含所引发的一系列错误C2143之类的解决方法

    本文可解决的问题: 在一个头文件.h中定义一个结构体,在另一个.h文件中使用这个结构体引发错误 C2143    语法错误: 缺少")"(在"*"的前面) (编 ...

  6. 防止头文件的重复包含

    防止头文件重复包含的宏想必大家都清楚,#ifndef#define#endif就是干这个用的,面试中也考过.我也是知道这个宏的作用,今天我们就来实战测试一下,网上说的那是别人的东西,只有自己测试过出结 ...

  7. C语言头文件为什么要加#ifndef #define #endif(防止头文件重复包含)

    当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子: #if !defined(AFX_XXXX__INCLUDED_)#define AFX_XXXX__INCLUDED_具体代码 ...

  8. C语言头文件互锁和包含问题

    正文 大家好,我是bug菌! 今天带来的主要内容是关于头文件的那些事,或许头文件并不是那么起眼,大部分人在编程中对头文件的组织并没有形成一定的设计思路,虽然使用了一些预编译在一定程度上能够减少重复包含 ...

  9. c语言头文件命名规则,C语言头文件规则.doc

    C语言头文件规则.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得收 ...

最新文章

  1. TFTP commons-net-3.3.jar
  2. 基于visual Studio2013解决面试题之1007鸡蛋和篮子
  3. C# 特性(attribute)
  4. Sharepoint 修改密码
  5. Cosmos OpenSSD--greedy_ftl1.2.0(二)
  6. Atitit mq的AMQP 协议 STOMP2 、MQTT3 等协议  MQTT,XMPP,STOMP,AMQP,WAMP 目录 1. AMQP in a Nutshell 1 2. MQTT概述
  7. 电力电子仿真-plecs3.6.1安装包
  8. STM32国产替代,再来一波
  9. CruiseControl.NET and MSBuild
  10. 软件测试用例篇总结概述
  11. 简单的下拉导航条代码
  12. 【蓝桥杯每日一练:小z的序列游戏-k】
  13. unity3d的playmaker插件使用教程,五、进入区域改变平台颜色
  14. python中else是指什么意思_python中elif什么意思?
  15. 数据可视化笔记之视觉感知认知
  16. 熵为什么使用log?
  17. 2021.9.17 zookeeper Linux 常用命令
  18. 什么是MySQL数据库?应用环境有哪些?
  19. iPerf 3.13 的交叉编译,移植,使用
  20. 用Rust实现区块链 - 3 持久化

热门文章

  1. 食品行业ERP选型 需把握关键的20%
  2. #1300 : 展胜地的鲤鱼旗(dp)
  3. hihocoder #1078 : 线段树的区间修改
  4. NYOJ 215 Sum
  5. Navicat Premium 12.0.24破解
  6. 18_使用react脚手架构建应用
  7. [转载]非常量引用的初始值必须为左值的问题
  8. 4.6 explain 之 rows
  9. Android开发技术周报 Issue#52
  10. jdbc调用mysql存储过程实现代码带有输入和输出