Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง sizeof และ alignof ใน C++

ที่นี่เราจะดูความแตกต่างของ 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