01/10/2018, 08:38

Kích thước của 1 struct/class rỗng là bao nhiêu?

Câu hỏi như tiêu đề ạ
Tại vì hôm trc e có nhớ man máng là 1 web nào đó nói sizeof của 1 struct/class rỗng luôn luôn bằng 1, nhưng khi bật eclipse lên (sử dụng linux gcc) để test thì nó lại cho kết quả là 0 ???
Anh/chị/pro nào biết giúp e vs ạ :>>

rogp10 viết 10:51 ngày 01/10/2018

Rỗng này tức là không có method gì luôn hả bạn lưu ý theo đúng chuẩn thì struct không có gì hết là undefined

C là 0 byte nhưng bên C++ là 1 byte.

Long Dragon viết 10:43 ngày 01/10/2018

Rỗng như thế này nè anh:

typedef struct {

} mystruct;
int main()
{
   ...
}
rogp10 viết 10:52 ngày 01/10/2018

Khi sử dụng ideone thì do ideone dùng gcc nên biên dịch được

Bên C++ thì struct class theo chuẩn không được là 0 byte nên cho bằng 1 luôn.

Long Dragon viết 10:45 ngày 01/10/2018

Ừm, e test thử thì các compiler của C đều gán empty struct đó là 0 hết.
nhưng em thử dùng vc compiler trên rextester để biên dịch file c thì nó ko cho phép struct rỗng luôn :v

http://rextester.com/WDXSC92901

Còn C++ thì compiler nào cũng cho sizeof là 1 hết

lưu ý theo đúng chuẩn thì struct không có gì hết là undefined

hontou ?
chuẩn C hay chuẩn C++ anh ?

Bài liên quan
0