【发布时间】:2014-11-14 06:07:56
【问题描述】:
什么时候执行
cout << sizeof(string);
我得到了 8 个答案。
现在我有了一个结构
typedef struct {
int a;
string str;
} myType;
我正在执行
cout << sizeof(myType);
我的答案是 16。
现在我改变了我的结构
typedef struct {
int a, b;
string str;
} myType;
我正在执行
cout << sizeof(myType);
我得到了 16 作为答案!!!。如何?发生了什么?
【问题讨论】:
-
在 ideone.com (ideone.com/6LYvXN) 的编译器配置产生 12 作为结构的大小。
-
请不要做 typedef struct { ... } typename;那就是 C。虽然它在 C++ 中是为了向后兼容而允许的,但它不是惯用的。真是烦人。使用 struct typename { ... };
-
谢谢@Rob K 我会记住这一点,我不会再重复了