提问个c++静态结构体变量的菜鸟问题

我再头文件中声明了一个结构体,入戏typedefstruct_struct_conf{unsignedcharManufr[2];unsignedcharVersion;... 我再头文件中声明了一个结构体,入戏
typedef struct _struct_conf{
unsigned char Manufr[2];
unsigned char Version;
}struct_conf;
然后头文件的类中如下定义
class configOp
{
public:
static struct_conf * m_conf;
static bool initConf();
...}
然后再cpp文件中的iniConf()中如下使用
bool configOp::initConf()
{...
int confCount=2
if(m_conf!=NULL)
free(m_conf);
m_conf=(struct_conf*)malloc(sizeof(struct_conf)*confCount);
...}
结果总是出现
错误 3 error LNK2001: 无法解析的外部符号 "public: static struct _struct_conf * configOp::m_conf" (?m_conf@configOp@@2PAU_struct_conf@@A) E:\Protocol\configOp.obj Protocol
错误 4 error LNK1120: 1 个无法解析的外部命令 E:\ConfigFile\Debug\MBusProtocol.dll 1 1 Protocol
上面两个错误,在注释掉cpp文件的相关变量分配内存的代码后则不再报错,但是一使用就报错,请问是哪里错了?
展开
 我来答
wenqing8585
2017-12-14 · TA获得超过8252个赞
知道大有可为答主
回答量:8078
采纳率:70%
帮助的人:3791万
展开全部
静态变量要在cpp文件里初始化,一般写在文件第一个函数之前:
struct_conf *m_conf=NULL;
你加上试试看还报不报错
追答
上面漏了类名,写成这样:

struct_conf *configOp::m_conf=NULL;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式