sizeof 和 alignof 有什么不同?
接下来,我们将了解 sizeof 和 alignof 操作符在 C++ 中的区别。alognof() 操作符是在 C++11 中引入的。
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
广告