sizeof和alignof有什么区别?

在这里,我们将看到C ++中sizeof和alignof运算符有什么区别。C ++ 11中引入了alognof()运算符。

alignof()运算符用于获取以字节为单位的对齐方式。它需要类型的实例。类型是完整类型或引用类型。还有另一个称为sizeof()运算符的运算符,它返回一种类型的大小。对于普通数据类型,sizeof和alignof返回相同的值。对于某些用户定义的数据类型,alignof返回一些不同的值。让我们看一个例子来了解这个想法。

示例

#include<iostream>
using namespace std;
struct MyStruct{
   int x;
   double y;
   char z;
};
main() {
   cout << "The sizeof(MyStruct): " << sizeof(MyStruct) << endl;
   cout << "The alignof(MyStruct): " << alignof(MyStruct) << endl;
}

输出结果

The sizeof(MyStruct): 24
The alignof(MyStruct): 8