在我的 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));
这是什么原因?如何解决?