GCCの下でコンパイルされた私のC++プログラムが(構造体のメンバの)最大4バイトのアラインメントを持つことを望みます。 #pragma packディレクティブでこれを行うことができます。しかし、私の場合はプロジェクトが非常に大きいので不快なので、#pragma packというヘッダーを1つ作成する必要があります。これはどこにでも置く必要があります。さて、gccコンパイラには、-と書かれている-mstructure-size-boundary = nオプションがあります。「許容値は8,32,64です。実際には、私はそれを4バイトコンパイラに設定しようとすると、警告 "構造体の境界は8,32または64にしか設定できません"(驚いたことに、え?)。しかし、なぜ#pragmaを通して4に設定できるのですか?コンパイラ設定で8-32-64以外の値にgcc構造体のアラインメントを設定する方法は誰にも分かりますか?コンパイラの設定(プラグマではない)によってGCCに構造体サイズの境界を4バイトに設定する方法を教えてください。
1
A
答えて
2
を参照してください。これは、構造のサイズを示します(名前が示すとおり)。これはメンバーの配置に関係しません。そのためには、(プラグマ以外の)オプション-fpack-struct[=n]
を使用することができます。
2
-mstructure-size-boundary = nは、#pragma packがバイトを使用している間、ビット単位でアライメントを指定します。
4バイト - > 32ビット。
は、あなたが間違ったmstructureサイズ・オプションを理解gccのオプション-fpack-構造体にも
関連する問題
- 1. 構造体を指定されたバイト境界に揃えるにはどうすればよいですか?
- 2. Drupal Rulesの設定方法を教えてください。
- 3. VMware vFabricの設定方法を教えてください。
- 4. cronタスクの設定方法を教えてください。
- 5. パスを正しく設定する方法を教えてください
- 6. 大規模なAlfresco CIFSサーバーの設定方法を教えてください。
- 7. Googleの設定スクリプトを取り除く方法を教えてください。
- 8. プラグマを設定しないようにSpringを設定する方法
- 9. Mac上で動作するJavaアプリケーションで境界線を指定する方法を教えてください。
- 10. Androidライブラリ用のTravis-CIの設定方法を教えてください。
- 11. Xcode 4でプリプロセッサマクロを定義する方法を教えてください。
- 12. 低レイテンシ環境でのレイテンシの測定方法を教えてください。
- 13. 一般/ etc/nginx/vhosts/default - サーバワイドの設定方法を教えてください。
- 14. ScrewTurn WikiをSQL Serverを使用するように設定する方法を教えてください。
- 15. Textmateに* .css.phpファイルとは別に* .phpを設定させる方法を教えてください。
- 16. ライブラリを静的にgccにリンクする方法を教えてください。
- 17. データベースフィールドではない一時変数を設定する方法を教えてください。
- 18. タブローを定義する方法を教えてください
- 19. Googleマップ:中心点を再定義し、特定の範囲に境界を設定してください
- 20. Bootstrap Carouselに特定のインデックスに行く方法を教えてください。
- 21. QTreeWidgetに絶対ファイルパスの階層構造を設定してください
- 22. TopLinkにOneToMany関係を強制的に設定させる方法を教えてください。
- 23. Objective CにNSDictionaryを持つNSArrayのNSPredicateを設定する方法を教えてください。
- 24. 選択するツリーデータ構造の種類を決定する方法を教えてください。
- 25. SyntaxHighlighterにデフォルトのブラシを指定する方法を教えてください。
- 26. maven pom.xmlファイルは設定をシステムプロパティに変換する方法を教えてください。
- 27. LLVMコンパイラ - 特定の関数の最適化を無効にする方法を教えてください。
- 28. 毎日設定された時間に静的アラームを解除する方法を教えてください。
- 29. スタックパネル内のコントロール間に余白を設定する方法を教えてください。
- 30. Django social-authの登録時にユーザー名を設定する方法を教えてください。