在VC中,我定义了一个global.h,它包含了几个结构体和一些常量定义.
但是我用
#ifndef _GLOBAL_H
#define _GLOBAL_H#endif 环绕整个global.h结果有三个类都引用了global.h.
Link的时候, 结构体已经包含在XXX.obj中定义...
为什么会这样?
但是我用
#ifndef _GLOBAL_H
#define _GLOBAL_H#endif 环绕整个global.h结果有三个类都引用了global.h.
Link的时候, 结构体已经包含在XXX.obj中定义...
为什么会这样?
struct USERINFO{
char caUsername[USERNAME_LEN];
char caMD5pwd[MD5_LEN]; /*md5(password)*/
char caMACaddr[MAC_LEN];
char caMD5ip[MD5_LEN];
} g_SUserInfo;结果它就说这个结构体 struct USERINFO g_SUserInfo已经在XXX.obj中定义...
struct USERINFO{
char caUsername[USERNAME_LEN];
char caMD5pwd[MD5_LEN]; /*md5(password)*/
char caMACaddr[MAC_LEN];
char caMD5ip[MD5_LEN];
};在用到的cpp中在去 声明该结构体的变量 g_SUserInfo;否则就会重定义,原因见2楼
如果为防止重复定义,最好把头文件中所定义的函数,在一个专门的.cpp中实现