以下のような構造体の定義を行ったとします。
C
1#include <glib.h> 2 3typedef struct _St1 4{ 5 guint32 v1; 6 guint16 v2; 7 gchar reserved[6]; 8 gint16 v3; 9 gint32 v4; 10 gint32 v5; 11 gint16 v6; 12 gint16 v7; 13} __attribute__ ((packed)) St1; 14
この場合、St1のサイズは26バイトになってほしいのですが、実際には28バイトとなり、v3の後に余計な2バイトが不可されてしまうようです。
コードのコンパイルはMinGW-w64 32bitのGCC 5.3.0で行い、上記の事象を確認しました。Ubuntu 15.10(x86)上のGCC 5.2.1でコンパイルした場合には、26バイトとなっていました。
何かお気づきの点がありましたらご指摘ください。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。