Vc++ 6.0 如何避免重复包含一个头
2011-01-08 22:27
260 查看
有下面的自定义结构体,定义在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
---------------------------------
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/vc/vc_js/20100630/263391.html
--------------------------------------------
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
---------------------------------
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/vc/vc_js/20100630/263391.html
相关文章推荐
- Vc++ 6.0 如何避免重复包含一个头文件 error C2011
- Vc++ 6.0 如何避免重复包含一个头文件 error C2011
- Vc++ 6.0 如何避免重复包含一个头文件 error C2011:
- 如何避免重复包含一个头文件?#ifndef #define #endif #Pragma
- 如何避免重复包含一个头文件?#ifndef #define #endif #Pragma
- VC中#ifdef与#pragma once避免重复包含的区别
- 如何避免重复包含一个文件? #ifndef、#define、#endif
- 如何避免重复包含一个头文件?#ifndef #define #endif #Pragma
- VC中#ifdef与#pragma once避免重复包含的区别
- 如何避免头文件被重复包含
- C开发经验3:如何避免重复包含头文件多次
- VC中#ifdef与#pragma once避免重复包含的区别
- VC中#ifdef与#pragma once避免重复包含的区别(转)
- [转载]VC中#ifdef与#pragma once避免重复包含的区别
- VC中#ifdef与#pragma once避免重复包含的区别
- iOS并发编程笔记,包含GCD,Operation Queues,Run Loops,如何在后台绘制UI,后台I/O处理,最佳安全实践避免互斥锁死锁优先级反转等,以及如何使用GCD监视进程文件文件夹,并发测试的方案等
- TRACE宏(只在MFC的DEBUG中有效)|VC++非MFC项目中如何自定义TRACE宏|头文件的重复编译|DEBUGVIEW窗口
- VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏
- tableview 在重用时如何避免内容重复
- VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏