sekcja
Tworzy sekcję w pliku .obj.
#pragma section( "section-name" [, attributes] )
Uwagi
Terminy segment i sekcja stosowane są zamiennie w tym temacie.
Po zdefiniowaniu sekcji, pozostaje ważna dla pozostałej części kompilacji.Jednakże, trzeba użyć __declspec(allocate) lub nic nie zostanie umieszczone w sekcji.
section-name jest wymaganym parametrem, który będzie nazwą sekcji.Nazwa nie może powodować konfliktu z żadną nazwą sekcji standardowej.Zobacz /SECTION, aby uzyskać listę nazw, których nie należy używać przy tworzeniu sekcji.
attributes to parametr opcjonalny, składający się z jednego lub więcej rozdzielanych przecinkami atrybutów, które mają być przypisane do sekcji.Możliwe attributes to:
read
Zezwala na operacje odczytu danych.write
Zezwala na operacje zapisu danych.execute
Pozwala na wykonanie kodu.shared
Udostępnia sekcję między wszystkimi procesami, które ładują obraz.nopage
Zaznacza sekcję jako niestronicowaną; przydatne dla sterowników urządzeń systemu Win32.nocache
Zaznacza sekcję jako niebuforowaną; przydatne dla sterowników urządzeń systemu Win32.discard
Zaznacza sekcję jako możliwą do odrzucenia; przydatne dla sterowników urządzeń systemu Win32.remove
Zaznaczenie sekcję jako nierezydentną; tylko sterowniki urządzeń wirtualnych (VxD).
Jeśli nie atrybuty nie zostaną określone, sekcja otrzyma atrybuty read i write.
Przykład
W poniższym przykładzie, pierwsza instrukcja identyfikuje sekcję i jej atrybuty.Liczba całkowita j nie jest umieszczana w mysec , ponieważ nie została zadeklarowany z __declspec(allocate); j przechodzi do sekcji danych.Liczba całkowita i przechodzi do mysec jako wynik jej atrybutu klasy magazynowania __declspec(allocate).
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}