C中的压缩结构的对齐是什么?

时间:2017-12-23 06:11:46

标签: c struct memory-alignment packing

采用以下结构:

struct s {
  char c; // 1 byte
  long l; // 8 bytes
};

C将在cl之间添加7个字节的填充,使得结构16的大小和结构8的对齐。如果我告诉编译器打包结构,那么如何对齐评估?它只是放弃并使对齐1个字节吗?

修改

此问题与Struct Padding and Packing不重复。我问的是如何评估打包结构的对齐方式。不是如何填充或如何评估常规结构的对齐。如果上述结构填充,则其大小为16,对齐 8 - 其最大成员(long)的对齐方式。如果打包,则其大小为9个字节,并且对齐字节。

0 个答案:

没有答案