松鼠的博客

导航

统计

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

有下面的自定义结构体,定义在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
---------------------------------

posted on   Xproer-松鼠  阅读(313)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示