>>923
0 については知らない。

1 について、構造体のメンバ間や終端には実装依存のパディングが入ることがある。
ただし実際には理由無くパディングを入れることはまず無いので、 sizeof や
offsetof と assert あるいは BOOST_STATIC_ASSERT を組み合わせてレイアウトを
確認しながら使うことはできる。

2, 3 4 について、整数型の表現形式は実装依存。ただし unsigned char については
そのビット数ぶん隙間無く詰まっていることが保証されている。移植性を最大にするなら
すべて unsigned char のレベルで処理することになる。つまり大きな整数型のまま
memcpy() するのではなく、想定しているバイト並びを明示的に組み立てるのがいい。
移植性は必要なくて速度が必要だと言うなら、そのことをコメントで記載したうえで
特定の実装に依存してしまうのもいい。

5 について、要求に応じて決めればいい。エンディアンとか気にするなら↑に戻る。