В файле 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));
В чем причина? И как это можно решить?
Задача ещё не решена.
Других решений пока нет …