01/10/2018, 08:24
Tại sao biến struct gồm 1 biến int và 1 biến char lại có sizeof là 8 bytes?
Như đã nói ở trên title topic, e có đoạn code đơn giản sau:
#include <iostream>
struct structure {
int x;
char c;
};
int main()
{
std::cout << sizeof(structure) << std::endl;
return 0;
}
Khi xuất ra, chương trình lại cho kết quả là 8 (bytes) => vì sao lại thế ạ ?
Vì theo e biết sizeof(structure) = sizeof(x) + sizeof(c) = 4 + 1 = 5
mà sao chương trình lại cho là 8 ???
Bài liên quan
Do data alignment. Bài viết này trình bày rất rõ ràng, bạn có thể tham khảo:
Anh @freedom có thể nói cho e về công dụng của
#pragma pack(n)
hay#pragma pack(1)
không ? Em thấy bài viết trên chưa nói về cái này, còn slide thầy Phương nói nhanh & chung chung quá e ko hiểuBạn tham khảo link này đây
stackoverflow.com
#pragma pack effect