更新时间:2023-09-09 23:13:28
如果你不告诉
您可以编写代码,将32位变量放置在非易失性存储器上,这样,编译器就可以正确地对齐32位变量。您也可以使用编译器#pragmas告诉编译器不来对齐特定的类型或变量。
t做任何,那么你的变量将正确对齐。
In the following link: http://msdn.microsoft.com/en-us/library/ms684122(VS.85).aspx, it is said that "Simple reads and writes to properly-aligned 32-bit variables are atomic operations". I'm wondering if in a c++ program all 32-bit variables are by default properly-aligned. Saying differently is there any case where a 32-bit variable could not been properly-aligned.
If you don't tell the compiler to do otherwise, then it will align 32-bit variables correctly.
You can write code which places 32-bit variables at non-aligned addresses (for example by creating an array of char
, and writing your int to an odd index in the array).
You can also use compiler #pragmas to tell the compiler not to align specific types or variables.
But if you don't do any of that, then your variables will be aligned properly.