Megosztás:


section pragma

Létrehoz egy szakaszt egy OBJ-fájlban.

Szintaxis

#pragma section( " szakasznév" [ ,attribútumok ] )

Megjegyzések

A szegmensek és szakasz azonos jelentéssel bírnak ebben a cikkben.

Miután definiált egy szakaszt, az a fordítás többi részére is érvényes marad. Azonban __declspec(allocate)kell használnia, különben a szakasz nem kerül semmire.

szakasznév egy kötelező paraméter, amely a szakasz nevévé válik. A név nem ütközhet egyetlen szabványos szakasznévvel sem. A szakasz létrehozásakor nem használandó nevek listáját lásd a /SECTION.

attribútumok a szakaszhoz rendelendő egy vagy több vesszővel tagolt attribútumból álló választható paraméter. Lehetséges attribútumok a következők:

Attribútum Leírás
read Lehetővé teszi az adatok olvasási műveleteit.
write Lehetővé teszi az adatok írási műveleteit.
execute Engedélyezi a kód végrehajtását.
shared Megosztja a szakaszt az összes olyan folyamat között, amely betölti a képet.
nopage A szakaszt nem lapozhatóként jelöli meg. Win32-eszközillesztők esetén hasznos.
nocache A szakaszt nem gyorsítótárazhatóként jelöli meg. Win32-eszközillesztők esetén hasznos.
discard A szakaszt eldobottként jelöli meg. Win32-eszközillesztők esetén hasznos.
remove A szakaszt nem memória-rezidensként jelöli meg. Csak virtuális eszközillesztők (VxD) esetén.

Ha nem ad meg attribútumokat, a szakasz read és write attribútumokkal rendelkezik.

Példa

Ebben a példában az első szakasz pragma azonosítja a szakaszt és annak attribútumait. A j egész szám nem kerül mysec, mert nem __declspec(allocate)használatával lett deklarálva. Ehelyett j az adatszakaszba kerül. Az egész szám i a mysec__declspec(allocate) tárolási osztály attribútuma miatt kerül be.

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

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

int main(){}

Lásd még:

Pragma irányelvei, valamint a __pragma és _Pragma kulcsszavak