ほとんどの「一般的な」C/C++ コンパイラ (gcc/g++ 用、一般的なスマートフォン用のコンパイラ、Visual C++ など) で、データ構造のアライメント情報を取得または生成するためのメカニズムはありますか? (この用語には、アラインメント、パディング、配置が含まれることに注意してください。)ターゲット プラットフォームで C/C++ コードを実行する必要なく、この情報を取得したいと考えています。
(たとえば、DWARF/DWARF2 をサポートするコンパイラで、そのようなデータを確実に取得できますか?)
更新:はい、gcc でpaholeを使用できます。(これが mingw32 で機能するかどうか、もしそうなら、DWARF2 データの出力に使用される '-g' フラグがコード生成を変更するかどうか疑問に思う必要があります。) 残念ながら、サポートしなければならないコンパイラは gcc だけではありません。(Visual C++ が 2 番目の候補である可能性が最も高いです。)
更新 2: Visual C++ の場合、これは有望に見えます。Visual C++ と g++ の間、Windows、Linux、Mac OS X、iOS、および Android NDK がカバーされていると思います。
更新 3:参考までに、私がこのような情報を取得する主な理由は、CPU に制約された条件下で高パフォーマンスの読み込みを行うために逆シリアル化を回避することです。データ構造のアライメント情報を使用するカスタム ツールを作成する以外に、これを達成するためのより良い方法を考えられる場合は、お気軽に投稿してください。票指がかゆいです。