Udostępnij za pośrednictwem


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(){}

Zobacz też

Informacje

Dyrektywy pragma i słowo kluczowe __Pragma