Udostępnij za pośrednictwem


data_seg

Określa segment danych, w którym przechowywane są zmienne inicjowane w pliku .obj.

#pragma data_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )

Uwagi

Znaczenie terminów segment i sekcja jest w tym temacie wymienne.

Pliki OBJ mogą być wyświetlane w aplikacji dumpbin.Domyślny segment dla zmiennych inicjowanych w pliku .obj to .data.Niezainicjowane zmienne są uważane za zainicjowane zerami i przechowywane w .bss.

data_seg bez parametrów resetuje segment na .data.

  • push (opcjonalne)
    Umieszcza rekord na wewnętrznym stosie kompilatora.Push może mieć identifier i segment-name.

  • pop (opcjonalne)
    Usuwa rekord z góry wewnętrznego stosu kompilatora.

  • identifier (opcjonalne)
    Gdy używany z push, przypisuje nazwę do rekordu na wewnętrznym stosie kompilatora.Gdy używany z pop, zdejmuje rekordy z wewnętrznego stosu, aż do usunięcia identifier; jeśli identifier nie zostanie odnaleziony na wewnętrznym stosie, nic nie zostanie zdjęte ze stosu.

    Identifier umożliwia zdjęcie ze stosu wielu rekordów za pomocą pojedynczego polecenia pop.

  • "segment-name" (opcjonalne)
    Nazwa segmentu*.* Gdy używana z pop, następuje zdjęcie segmentu ze stosu i segment-name staje się aktywną nazwą segmentu.

  • "segment-class" (opcjonalne)
    Dołączone dla zachowania zgodności z językiem C++ w wersjach wcześniejszych niż 2.0.Jest ignorowane.

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 przypisane przy użyciu data_seg nie zachowują żadnych informacji dotyczących lokalizacji.

Zobacz /SECTION, aby uzyskać listę nazw, których nie należy używać przy tworzeniu sekcji.

Możesz również określić sekcje dla zmiennych "const" (const_seg), niezainicjowanych danych (bss_seg) i funkcji (code_seg).

Zobacz też

Informacje

Dyrektywy pragma i słowo kluczowe __Pragma