Udostępnij za pośrednictwem


section pragma

Tworzy sekcję w pliku OBJ.

Składnia

#pragma section( "nazwa-sekcji " [ , atrybuty ])

Uwagi

Terminy segment i sekcja mają takie samo znaczenie w tym artykule.

Po zdefiniowaniu sekcji pozostaje ona prawidłowa dla pozostałej części kompilacji. Należy jednak użyć elementu __declspec(allocate)lub nic nie zostało umieszczone w sekcji .

nazwa-sekcji jest wymaganym parametrem, który staje się nazwą sekcji. Nazwa nie może powodować konfliktu z żadnymi standardowymi nazwami sekcji. Zobacz /SECTION listę nazw, których nie należy używać podczas tworzenia sekcji.

atrybuty to opcjonalny parametr składający się z co najmniej jednego atrybutu rozdzielanego przecinkami do przypisania do sekcji. Możliwe atrybuty to:

Atrybut opis
read Umożliwia operacje odczytu na danych.
write Umożliwia operacje zapisu na danych.
execute Umożliwia wykonywanie kodu.
shared Udostępnia sekcję wśród wszystkich procesów ładujących obraz.
nopage Oznacza sekcję jako niestronicowaną. Przydatne w przypadku sterowników urządzeń Win32.
nocache Oznacza sekcję jako niemożliwą do buforowania. Przydatne w przypadku sterowników urządzeń Win32.
discard Oznacza sekcję jako odrzuconą. Przydatne w przypadku sterowników urządzeń Win32.
remove Oznacza sekcję jako nie rezydenta pamięci. Tylko w przypadku sterowników urządzeń wirtualnych (VxD).

Jeśli nie określisz żadnych atrybutów, sekcja zawiera read atrybuty i write .

Przykład

W tym przykładzie pierwsza sekcja pragma identyfikuje sekcję i jej atrybuty. Liczba całkowita j nie jest umieszczana w mysec pliku, ponieważ nie została zadeklarowana przy użyciu metody __declspec(allocate). Zamiast tego przejdź j do sekcji danych. Liczba całkowita i przechodzi do mysec z powodu atrybutu __declspec(allocate) klasy magazynu.

// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;

__declspec(allocate("mysec"))
int i = 0;

int main(){}

Zobacz też

Pragmadyrektywy i __pragma słowa kluczowe i _Pragma