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 人次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始
廣告