套头文件html重复,防止头文件被重复包含的两种方法

在windows平台下,有一个很方便的宏: #pragma once

指定当前文件在构建时只被包含(或打开)一次,这样就可以减少构建的时间,因为加入#pragma once后,编译器在打开或读取第一个#include 模块后,就不会再打开或读取随后出现的相同#include 模块.

另外,还可以用条件编译语句来实现:

#ifndef "XX_H"

#define "XX_H"

#endif

显然后者的移植性更好一点。

有下面的自定义结构体,定义在sample.h中。

——————————————–

typedef struct sample{

int trueNumber;

double feature[13];

}SAMPLE;

——————————————–

类A,类B都#include,主程序都调用了类A,类B;就会出现

error C2011: ”sample” : ”struct” type redefinition

解决方法:写上宏定义:

———————————–

#ifndef sample_H_H

#define sample_H_H

typedef struct sample{

int trueClass;

double feature[13];

}SAMPLE;

#endif

—————————————

也可以这样写

———————————-

#if !define sample_H_H

#define sample_H_H

typedef struct sample{

int trueClass;

double feature[13];

}SAMPLE;

#endif

——————————-

意思是:

if(宏sample_H_H,没有被定义过)

{

定义宏sample_H_H

……..(执行)other code

}

实际上sample_H_H作为一个标记而存在

自定义一个类时,在所有的头文件中都应用这组宏处理

注意是#ifndef不是#ifdef

———————————–

#ifndef 标记名(常以类名_H_H,两个标记名要相同)

#define 标记名

//你原来的文件内容

#endif

———————————

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值