可能性の重複:サイズ
#include <stdio.h> struct employee { int id; char name[30]; }; int main() { struct employee e1; printf("%d %d %d", sizeof(e1.id), sizeof(e1.name), sizeof(e1)); return(0); }
出力である:
Why isn’t sizeof for a struct equal to the sum of sizeof of each member?
は、以下のCコードを検討
構造体のサイズが個々のコンポーネント変数のサイズの合計と等しくないのはなぜですか?
gccでpacked属性を使用することができます。これにより、パディングが削除され、構造ができるだけ小さく保たれます。 struct test_t { int c; } __attribute __((__ packed__)); – eaanon01
(少なくとも)の重複http://stackoverflow.com/questions/119123/why-isnt-sizeof-for-a-struct-equal-to-the-sum-of-sizeof-of-each-member – dmckee
eaanon01 。本当に本当に良い理由があり、すべての意味が理解されていない限り、誰かに、属性がパックされたものと同じように移植不可能なものを伝えるべきではありません。 –