场景
1.在使用一些相关原子操作的函数或指令时, 一般都需要对操作的变量地址进行对齐, 4,8,16…字节对齐.
2.在没有引入C++11的alignas指示符之前, 一般都是使用
__declspec(align(4)) int i; // Windows
alignas(4) int j; // C++
或定义一些存储空间进行计算转换, 参考数据地址对齐. 不同的是前者是编译时刻计算出地址,后者是运行时刻计算出内存对齐地址; 麻烦的是VS2010 并不是完整支持C++11对齐特性.
说明
1.C++11 引入了很多地址对齐相关的操作符, 函数, 模板。