使用memcpy在ubuntu上的未定义引用

时间:2013-01-21 15:27:08

标签: c++ ubuntu const memcpy

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

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

0 个答案:

没有答案