私の現在の設計には、組み込みシステムと PC 間の通信が含まれており、常に構造体の設計に悩まされています。
2 つのシステムには、対処する必要がある異なるエンディアンがあります。ただし、問題を解決するために、4 バイトごとに単純なバイト順の切り替えを行うことはできないことがわかりました。構造体に依存することがわかりました。
たとえば、次のような構造体です。
{
uint16_t a;
uint32_t b;
}
a と b の間にパディングが発生します。最終的には、パディング バイトが存在するため、エンディアン スイッチは a と b に固有のものでなければなりません。しかし、構造体の内容を変更するたびにエンディアン スイッチ ロジックを変更する必要があるため、見栄えが悪くなります。
パディングが入ったときに要素を構造体に配置するための良い戦略は何ですか? 構造体の末尾にパディング バイトのみが存在するように、要素を再配置する必要がありますか?
ありがとう。