私が持っている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));
その理由は何ですか?どうすれば解決できますか?