неопределенная ссылка на Ubuntu с использованием 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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]