Ở đây chúng ta sẽ xem những khác biệt của toán tử sizeof và alignof trong C++. Toán tử alignof() được giới thiệu trong C++11.
Toán tử alignof() được dùng để lấy căn chỉnh theo byte. Nó yêu cầu các instance của kiểu. Kiểu là kiểu hoàn chỉnh hoặc kiểu tham chiếu. Có một toán tử khác gọi là sizeof(), trả về kích thước của một kiểu. Với các kiểu dữ liệu thông thường, sizeof và alignof trả về cùng giá trị. Với một số kiểu do người dùng định nghĩa, alignof trả về giá trị khác. Hãy xem ví dụ để hiểu ý tưởng.
Ví dụ
#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;
}Kết quả
The sizeof(MyStruct): 24 The alignof(MyStruct): 8