data_seg
Określa, gdzie zainicjować zmienne są przechowywane w pliku .obj segmentu danych.
#pragma data_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )
Uwagi
Znaczenie terminów segment i sekcji są wymienne, w tym temacie.
OBJ pliki mogą być wyświetlane z dumpbin aplikacji.Segmentem domyślnym pliku .obj zainicjować zmiennych jest .data.Niezainicjowanych zmiennych są uważane za zainicjowane do zera i są przechowywane w .bss.
data_seg bez parametrów resetuje segmentu .data.
wypychania(opcjonalnie)
Umieszcza rekordu wewnętrznego stosu kompilatora.A kampanii może mieć identyfikatora i Nazwa segmentu.POP (opcjonalnie)
Usuwa rekord z wierzchu stosu wewnętrznego kompilatora.Identyfikator (opcjonalnie)
Gdy używana z wypychania, przypisuje nazwę rekordu na stosie wewnętrznego kompilatora.Z pop, punkty obecności rekordów wewnętrznego stosu do identyfikatora usunięte; Jeśli identyfikatora nie zostanie znaleziony na stosu wewnętrznego, nic nie jest tam pojawi.Identyfikator wielu rekordów się tam pojawi pojedynczym pop polecenia.
"Nazwa segmentu"(opcjonalnie)
Nazwa segmentu*.* Gdy używana z pop, stos jest tam pojawi i Nazwa segmentu staje się aktywny segment nazwę."segment klasy" (opcjonalnie)
Włączone dla zgodności z C++ w wersji 2.0.Jest ignorowana.
Przykład
// 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() {
}
Dane przydzielonych za pomocą data_seg nie zachowuje żadnych informacji o lokalizacji.
Zobacz /Section listę nazw, nie należy używać podczas tworzenia sekcji.
Można również określić sekcje const zmiennych (const_seg), niezainicjowanych danych (bss_seg), a funkcje (code_seg).