0

在我的 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));

这是什么原因?如何解决?

4

0 回答 0