C语言头文件为什么要加#ifndef #define #endif(防止头文件重复包含)
当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子:
#if !defined(AFX_XXXX__INCLUDED_)#define AFX_XXXX__INCLUDED_具体代码#endif
这是为了防止头文件被重复包含。重复包含可以用下面的例子来说明:比如有个头文件a.h,里面有个函数Fa;另一个头文件b.h,里面有函数Fb, Fb的实现需要用到Fa,则b.h中需要包含a.h;有个cpp文件中的函数需要用到Fa和Fb,则需要包含a.h和b.h,此时a.h就发生了重复包含。编译程序,出现如下错误:
error C2084: function 'bool __cdecl Fa()' already has a body
解决办法是在a.h的中加入:
#ifndef A#define A原来的代码#endif
参考文章:头文件为什么要加#ifndef #define #endif
C语言头文件为什么要加#ifndef #define #endif(防止头文件重复包含)相关推荐
- 头文件为什么要加#ifndef #define #endif
一 #ifndef 在头文件中的作用 一个大的软件工程里有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量"重定义"的错误.这时在头文件中使用#ifn ...
- #ifndef #define #endif ”防止头文件被重复包 .
#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码: #include "x.h" #include "x.h" ...
- ifndef/define/endif——主要目的是防止头文件的重复包含和编译
原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...
- c/c++头文件中#ifndef/#define/#endif的用法
想必很多人都看过"头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?头文件被重复 ...
- #ifndef/#define/#endif 防止该头文件被重复引用
转载自:http://blog.csdn.net/abc5382334/article/details/18052757 想必很多人都看过"头文件中的 #ifndef/#defi ...
- C++中#ifndef/#define/#endif使用详解
想必很多人都看过"头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?是不能在不同的两个 ...
- #ifndef/#define/#endif
#ifndef/#define/#endif 头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用 "被重复引用"是指一个头文件在同一个cpp文件中被i ...
- 【转载】#pragma once与#ifndef #define #endif的区别
一.相同点 两者的共同点都是为了避免同一个文件被 include 多次,但是 #ifndef #define #endif 不只有这个作用. 在能够支持这两种方式的编译器上,二者并没 ...
- #ifndef/#define/#endif使用详解
https://blog.csdn.net/abc5382334/article/details/18052757 想必很多人都看过"头文件中的 #ifndef/#define/#endif ...
最新文章
- MongoDB 搭建副本集
- Java IO流面试题
- HDOJ 1316 How Many Fibs?
- 001.Parted工具使用
- Xamarin.Android 使用ListView绑定数据
- 开发asp.net2.0手机用网站 点滴[xgluxv]
- 用C语言实现面向对象的开发
- 安卓项目中的R.java文件丢失如何解决
- mybatis的缓存技术使用
- 《干货集锦》——前端大牛 Addy Osmani 的15个精彩PPT
- Mars说光场(5)— 光场在三维人脸建模中的应用
- java图片处理,文字自动换行
- 计算机丢失msvcr100.dll解决办法,计算机丢失MSVCR100.dll
- 网线,交换机基础命令
- BI项目实施为什么成功率那么低
- 如何把catia完全卸载干净_电脑卸载不了catia软件怎么办?电脑彻底卸载catia软件的方法...
- 这次把怎么做好一个PPT讲清-演讲篇
- 基于Python的ERP系统中主生产计划(MPS)的计算
- 如何将本地文件自动备份到百度网盘?
- FreeBSD安装vmtools波折
热门文章
- python爬虫怎么爬小说_python从爬虫基础到爬取网络小说实例
- 【学习笔记】SAP 成本对象控制
- 【PM模块】PM模块主数据
- 【增强】FI行项目报表增强任意字段
- 天合汽车安全技术(张家港)有限公司
- SAP HANA要改变什么?
- 从“电商合伙人”到“品牌掌柜”,快手电商“军训”进行时
- android ndk jni so,Android Studio Ndk So 文件
- spark 写tidb_tidb使用坑记录
- angular 指定components的路径_如何手动启动 Angular 程序