Vc++ 6.0 如何避免重复包含一个头文件 error C2011

Vc++ 6.0 如何避免重复包含一个头文件 error C2011: http://www.diybl.com/ 2008-3-16  网络 点击:  [ 评论 ]
文章搜索:     【点击打包该文章】 
【本站开通在线QQ讨论群】

有下面的自定义结构体,定义在sample.h中。
--------------------------------------------
typedef struct sample{
 int trueNumber;
 double feature[13];
}SAMPLE;
--------------------------------------------

类A,类B都#include<sample.h>,主程序都调用了类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
---------------------------------


文章出处:http://www.diybl.com/course/3_program/vc/vc_js/2008316/104781.html

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值