2012-08-16 1001 views
9

Cで"#pragma section <XYZ>"を使用するとは何ですか?C言語で「#pragma section <XYZ>」とは何ですか?

私は、次のようなものを使用したCコードファイルに遭遇している

: -

XYZがある
#define XYZ "ITEM 26.G03" 

#pragma section <XYZ> 

#define XYZ "ITEM 26.G03"

私は"#pragma section"

+0

http://stackoverflow.com/questions/9716637/what-is-the-use-of-pragma-code-section-and-data-section – codejammer

+0

あなたが役に立ったら回答を受け入れることができます。また、将来の来場者には恩恵を受けるでしょう。 – Jaguar

答えて

4

セクションが作成するの使用に関するいくつかのexplainationが必要.objファイル内のセクション。
詳細については、MSDNを参照してください。

コードとデータは、オブジェクトファイルのセクションで生成され、リンカによって実行可能ファイルに結合され、最終的に特定の場所のターゲットメモリに配置されます。既定のセクションはあらかじめ定義され、特定の属性を持っています。 セクションプラグマは、デフォルトの属性の変更、新しいセクションの定義、および特定のセクションへのコードと変数の割り当ての制御、およびリンカコマンドファイルとその場所の制御に使用できます。

#pragma sectionは、セクションクラス、およびオプションでクラス内の1つまたは2つのセクションを定義します。セクションクラスは、クラスのインスタンスに配置された変数とコードのアドレッシングとアクセシビリティを制御します。

7

#pragmaディレクティブは、実装固有のディレクティブです。コンパイラに追加情報を提供する標準的な方法です。このディレクティブの形式は次のとおりです。プリプロセッサは指定された「名前」を認識した場合

#pragma name 

、それは彼らが立ってどんなアクションを実行、またはコンパイラに情報を渡します。 "name"がC実装でサポートされていない場合、それは無視されます

たとえば、gccコンパイラは、hereと記載されているプラ​​グマのリストを受け入れます。 #pragma sectionについては

GCCのドキュメントは言った:

セクション(「セクション名」)通常、コンパイラはそれ は、テキストセクションに生成したコードを配置します。ただし、追加の セクションが必要な場合や、特別なセクションに表示する特定の機能が必要な場合もあります。 section属性は、関数 が特定のセクションに存在することを指定します。例えば、宣言は、

となり、バー部分にはfoobarが置かれます。

一部のファイル形式では任意のセクションがサポートされないため、セクション の属性は一部のプラットフォームで使用できません。 モジュールの内容全体を特定のセクションにマップする必要がある場合は、 リンカの機能を代わりに使用することを検討してください。

その他の詳細here

関連する問題