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