深入解析C++编程中__alignof 与__uuidof运算符的使用
__alignof运算符
C++11引入alignof运算符,该运算符返回指定类型的对齐方式(以字节为单位)。为实现最大的可移植性,应使用alignof运算符,而不是特定于Microsoft的__alignof运算符。
返回一个size_t类型的值,该值是类型的对齐要求。
语法
__alignof( type )
备注
例如:
Expression
值
__alignof(char)
1
__alignof(short)
2
__alignof(int)
4
__alignof(__int64)
8
__alignof(float)
4
__alignof(double)
8
__alignof(char*)
4
__alignof值与基本类型的sizeof的值相同。但是,请考虑该示例:
typedefstruct{inta;doubleb;}S; //__alignof(S)==8
在该示例中,__alignof值是结构中的最大元素的对齐要求。
同样,
typedef__declspec(align(32))struct{inta;}S;