char的结构数据对齐

时间:2013-12-01 23:46:11

标签: c

我想知道我是否有这样的结构:

typedef struct {
    char element;
} element_t;

现在是条件:

sizeof(elem.element) == sizeof(element_t) == 1

仅适用于某些架构,或者总是那样?我的意思是,任何对齐都可以在这里发生,所以它可以是:

(sizeof(elem.element) == 1) != (sizeof(element_t) == 4)

如果结构中的数据与32位体系结构中的4字节边界对齐。

1 个答案:

答案 0 :(得分:2)

sizeof(elem.element)保证为1(但不保证它只能保存8位)。

无法保证sizeof(element_t) == 1,但在所有实际架构中,我相信它的大小为1。