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

更新于︰2019 年 7 月 30 日

479 人次浏览

开启您的职业生涯

通过完成课程获得认证

开始
广告