パディングを無視して、構造体変数自体を保存できる理由が分かりません。
以下のサイトで、可変長配列メンバを利用した、構造体変数自体のファイル出力を行っています。
ただ、パディングが行われる可能性があるため、構造体変数自体のファイル出力は好ましくないと思います。
参照サイト: ロベールのC++教室 - 第15章 伸縮自在 -
なぜなら、あるCPUを使用した環境において、パディングが行われない様にメンバ変数のサイズを決めたとしても、アライメントはCPUに起因するため、CPUが異なる場合に、パディングが行われない保証はないと思うからです。
ただ、上記のサイトにも書かれているのですが、Windows APIのBITMAPINFO構造体も、可変長配列メンバを利用し、構造体変数自体をファイル出力する仕様になっています。
参照サイト: BITMAPINFO構造体 -MSDN-
Windows APIが利用している以上、CPUに依存せずパディングを回避して、構造体変数自体をファイル出力できる仕組みがあると思うのですが、それが何か教えてもらえないでしょうか。
最後に、関連した質問で、可変長配列メンバの利用理由として、
・メモリの節約
・ファイル出力関数の呼び出し回数の抑制
以外に何かあれば教えてください。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/23 11:15 編集
2016/02/23 15:08
2016/02/23 15:34 編集
2016/02/23 16:46
2016/02/24 11:30 編集
2016/02/24 12:04
2016/02/24 12:07
2016/02/24 14:03 編集
2016/02/25 11:38 編集
2016/02/25 12:31
2016/02/25 13:17
2016/02/27 05:02 編集
2016/02/27 05:16
2016/02/27 06:27