最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

头文件为什么要加#ifndef #define #endif

来源:动视网 责编:小OO 时间:2025-09-25 13:45:23
文档

头文件为什么要加#ifndef #define #endif

头文件为什么要加#ifndef#define#endif当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子:#if!defined(AFX_XXXX__INCLUDED_)#defineAFX_XXXX__INCLUDED_具体代码#endif这是为了防止头文件被重复包含。重复包含可以用下面的例子来说明:比如有个头文件a.h,里面有个函数Fa;另一个头文件b.h,里面有函数Fb,Fb的实现需要用到Fa,则b.h中需要包含a.h;有个cpp文件中的函数需要用到Fa和Fb,则需要
推荐度:
导读头文件为什么要加#ifndef#define#endif当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子:#if!defined(AFX_XXXX__INCLUDED_)#defineAFX_XXXX__INCLUDED_具体代码#endif这是为了防止头文件被重复包含。重复包含可以用下面的例子来说明:比如有个头文件a.h,里面有个函数Fa;另一个头文件b.h,里面有函数Fb,Fb的实现需要用到Fa,则b.h中需要包含a.h;有个cpp文件中的函数需要用到Fa和Fb,则需要
头文件为什么要加#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

示例源代码清单如下:

// a.h

#ifndef A

#define A

bool AorB(bool a)

{

    return a;

}

#endif

// b.h

#include "a.h"

bool CorD(bool a)

{

    return AorB(a);

}

// a.cpp

#include "a.h"

#include "b.h"

int main()

{

    bool a = 0;

    bool b = AorB(a);

    bool c = CorD(b);

    getchar();

    return 0;    

}

文档

头文件为什么要加#ifndef #define #endif

头文件为什么要加#ifndef#define#endif当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子:#if!defined(AFX_XXXX__INCLUDED_)#defineAFX_XXXX__INCLUDED_具体代码#endif这是为了防止头文件被重复包含。重复包含可以用下面的例子来说明:比如有个头文件a.h,里面有个函数Fa;另一个头文件b.h,里面有函数Fb,Fb的实现需要用到Fa,则b.h中需要包含a.h;有个cpp文件中的函数需要用到Fa和Fb,则需要
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top