【发布时间】:2012-03-14 05:14:53
【问题描述】:
可能重复:
Why isn't sizeof for a struct equal to the sum of sizeof of each member?
我正在尝试解析 ID3v2 标签,至少获取艺术家、标题和专辑等重要数据,但我无法设置必要的结构。
struct ID3v2_frame{
char id[4];
unsigned int size;
bool flags[2];
};
ID3v2_frame frame;
cout<<sizeof(frame)<<endl;
我认为这是我如何设置 4 字节 int 的问题。 当我输出 sizeof(frame) 它输出 12 时,我的预期输出是 10。 我在 64 位 linux 机器上运行。
【问题讨论】:
-
bool不是 C 类型。它是如何定义的? -
是的,差不多,在我的搜索中没有遇到它,但得到了答案,谢谢
-
@leppie:
bool不是 C89 中的标准类型,但在#include <stdbool.h>之后出现在 C99 中(并且_Bool在任何时候都是 C99 中的类型)。