ที่นี่เราจะดูความแตกต่างของ sizeof และ alignof operator ใน C++ alignof() ถูกเพิ่มใน C++11
alignof() ใช้หา alignment ในหน่วยไบต์ ต้องการ instance ของ type ซึ่งอาจเป็น complete type หรือ reference type sizeof() คืนค่าขนาดของ type สำหรับ datatype ธรรมดา sizeof และ alignof จะคืนค่าเท่ากัน แต่สำหรับ user-defined type alignof อาจคืนค่าต่างออกไป มาดูตัวอย่าง
ตัวอย่าง
#include <iostream>
using namespace std;
struct MyStruct {
int x;
double y;
char z;
};
int main() {
cout << "The sizeof(MyStruct): " << sizeof(MyStruct) << endl;
cout << "The alignof(MyStruct): " << alignof(MyStruct) << endl;
}
ผลลัพธ์
The sizeof(MyStruct): 24 The alignof(MyStruct): 8