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