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;
}
Run Code Online (Sandbox Code Playgroud)
这将无法编译,因为
struct FOO test = foo;
生成错误:
错误:'const FOO&'类型的绑定引用到'volatile FOO'会丢弃限定符
如何在C++中复制volatile struct到另一个struct(在C++ 11之前)?
许多人建议只删除volatile,但在这种情况下我不能这样做,因为我想在μC内复制当前的SPI-Reg设置,并且这被制造商标题声明为volatile.我想复制这些设置,因为制造商还提供了一个库来使用SPI进行EnDat-Communication,而我无法访问源代码.由于我必须在运行期间更改SPI-Reg-Settings,因此我希望能够轻松返回到库SPI设置,而无需再次调用init_endat() - lib fkt(如果我将其调用两次,则未指定会发生什么).
我可以使用memcopy()吗?
如上所述,这是以下问题的副本.