構造体の宣言にpackedを指定する
設計内容分類 | 組み込みソフトウェアにおけるC言語記述 |
---|
設計のポイント
構造体を使用する際、アラインメントのためにパディングバイトが挿入されてしまい、構造体のサイズがメンバ変数の合計サイズとならない場合があります。
構造体の宣言の際に__packedや__attribute__((__packed__))を指定することで、パディングバイトの挿入を抑制し、構造体のサイズがメンバ変数の合計サイズとなるよう指定することができます。
(指定方法は環境によって異なります)
typedef struct __packed st_data{
…
} data;