struct FOO{
int a;
int b;
int c;
};
volatile struct FOO foo;
int main(void)
{
foo.a = 10;
foo.b = 10;
foo.c = 10;
struct FOO test = foo;
return 0;
}
Это не будет компилироваться, потому что struct FOO test = foo;
генерирует ошибку:
error: ссылка привязки типа 'const FOO &' к 'volatile FOO' отбрасывает квалификаторы
Как скопировать volatile struct
в другую struct
в C++ (до C++ 11)?
Многие люди предлагали просто деактивировать volatile, но я не могу этого сделать в этом случае, потому что я хочу скопировать текущие настройки SPI-Reg внутри μC, и это объявлено изменчивым заголовками производителя. Я хочу скопировать эти параметры, потому что manufactuerer также предоставляет библиотеку для использования SPI для EnDat-Communication, и у меня нет доступа к исходному коду. Поскольку мне нужно изменить SPI-Reg-Settings во время выполнения, я хочу легко вернуться к настройкам SPI библиотеки, не вызвав снова init_endat() -lib fkt (неуказано, что произойдет, если я вызову его дважды).
Могу ли я использовать memcopy() для этого?
Как было предложено, это копия следующего вопроса.
Почему мне не предоставлен конструктор копии по умолчанию из изменчивого?