alignas关键字用来设置内存对齐方式,最小是8字节,可以是16、32、64、128字节
计算机也会进行内存对齐,但是不同机器对齐方式不确定;
内存对齐的计算方法就是对齐数的整数倍,
若为32位对齐,实际数据不到32字节,但内存还是会占用32字节;‘
若实际数据大于32字节,小于64字节,则内存占用为64字节;#include <iostream> using namespace std; struct struct_Test1 { char c; int i; double d; }; struct alignas(8) struct_Test2 { char c; int i; double d; }; struct alignas(16) struct_Test3 { char c; int i; double d; }; struct alignas(32) struct_Test4 { char c; int i; double d; }; int _tmain(int argc, _TCHAR* argv[]) { struct_Test1 test1; struct_Test2 test2; struct_Test3 test3; struct_Test4 test4; cout<<"char size:"<<sizeof(char)<<endl; cout<<"int size:"<<sizeof(int)<<endl; cout<<"double size:"<<sizeof(double)<<endl; cout<<"test1 size:"<<sizeof(test1)<<endl; cout<<"test2 size:"<<sizeof(test2)<<endl; cout<<"test3 size:"<<sizeof(test3)<<endl; cout<<"test4 size:"<<sizeof(test4)<<endl; system("pause"); return 0; } char size:1 int size:4 double size:8 test1 size:16 test2 size:16 test3 size:16 test4 size:32 请按任意键继续. . .