data_seg
初期化された変数は .obj ファイルに格納されているデータ セグメントを指定します。
#pragma data_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )
解説
用語の意味は セグメント化し、セクションは このトピック内の置換可能です。
オブジェクト ファイルは dumpbin アプリケーションで表示できます。初期化された変数の .obj ファイルの既定セグメントは .data です。初期化されていない変数がゼロに初期化されると見なされ、 bss に格納されます
パラメーターなし のdata_seg は .data にセグメントをリセットします。
push(省略可能)
コンパイラの内部スタックにレコードを配置します。push 、 ID と セグメント名前を付けることができます。pop (省略可能)
コンパイラの内部スタックの最上位からレコードを削除します。ID (省略可能)
割り当て名前、コンパイラの内部スタックのレコードに pushに使用された場合。popを使用すると、 pop は内部スタックから ID が 削除されるまで記録します; ID が 内部スタックにない場合は、何もポップ鳴りません。ID はpop 一つのコマンドとポップする複数のレコードを有効にします。
「segment " 名前」(省略可能)
セグメントの名前*。*popを使用すると、スタックがポップされ、 セグメント名前は 、実行中のセグメント名になります。「segment " クラス」 (省略可能)
バージョン 2.0 までは C++ の互換性のためにインクルードされます。これは無視されます。
使用例
// pragma_directive_data_seg.cpp
int h = 1; // stored in .data
int i = 0; // stored in .bss
#pragma data_seg(".my_data1")
int j = 1; // stored in "my_data1"
#pragma data_seg(push, stack1, ".my_data2")
int l = 2; // stored in "my_data2"
#pragma data_seg(pop, stack1) // pop stack1 off the stack
int m = 3; // stored in "stack_data1"
int main() {
}
data_seg を使用して割り当てられたデータは頻繁に関する情報を保持しません。
使用しない名前の一覧については、を参照してください /SECTION セクションを作成したとき。
定数または変数 ()const_seg、初期化されていないデータ (bss_seg)、および関数 (code_seg)にセクションを指定できます。