在aData.h文件中我有
struct AnalysisData
{
Myuint64 maxRegsNeeded;
}
static const Myuint64 My_NA_Value_64 = (Myuint64) - 1;
Myuint64的定义方式如下:
typedef unsigned long long Myuint64
如果在我制作的aData.cpp
文件中:
AnalysisData d;
d.maxRegsNeeded = My_NA_Value_64;
一切正常。
但如果在aData.cpp
我实现了函数
setData(void* pD,size_t s)
{
memcpy(pD,&My_NA_Value_64 ,s);
}
如果我将其实现为:
setData(void* pD,size_t s)
{
Myuint 64 err = My_NA_Value_64;
memcpy(pD,&err ,s);
}
没关系
编译期间以下代码失败,未定义引用My_NA_Value_64
:
AnalysisData d;
setData(&d.maxRegsNeeded,sizeof(d.maxRegsNeeded));
这是什么原因?它如何解决?