alignas
c++是能够面向内存编程的,这个与继承自c。有时候我们在写操作原始内存代码的时候,我们需要指定内存分配是时的对齐方式,c++11提供了相应的语法:alignas
alignas(double) unsigned char c[1024]; //字符数组,但是却以double数据的形式对齐数据
alginas(16) char d[100]; //以16字节对齐
可以看到alignas要求的对齐方式不一定是某种类型,也可以是字节数。
alignof
对应的C++11还提供了一个alignof操作符用以返回其参数(必须是某种类型)的对齐方式,比如:
<span style="white-space:pre"> </span>constexpr int n = alignof(int); //返回int的对齐方式,每个int数据占n个字节的内存
其实这一句还尚有不懂之处,还望指正或来日更正。