section
pragma
Hiermee maakt u een sectie in een OBJ-bestand.
Syntaxis
#pragma section( "
sectienaam"
[,
kenmerken ])
Opmerkingen
De termen segment en sectie dezelfde betekenis hebben in dit artikel.
Zodra een sectie is gedefinieerd, blijft deze geldig voor de rest van de compilatie. U moet echter __declspec(allocate)
gebruiken of er wordt niets in de sectie geplaatst.
sectienaam is een vereiste parameter die de naam van de sectie wordt. De naam mag niet conflicteren met standaardsectienamen. Zie /SECTION
voor een lijst met namen die u niet moet gebruiken bij het maken van een sectie.
kenmerken is een optionele parameter die bestaat uit een of meer door komma's gescheiden kenmerken die aan de sectie moeten worden toegewezen. Mogelijke kenmerken zijn:
Attribuut | Beschrijving |
---|---|
read |
Hiermee staat u leesbewerkingen voor gegevens toe. |
write |
Hiermee staat u schrijfbewerkingen toe op gegevens. |
execute |
Hiermee kan code worden uitgevoerd. |
shared |
Deelt de sectie over alle processen die de installatiekopieën laden. |
nopage |
Hiermee markeert u de sectie als niet-wisselbaar. Handig voor Win32-apparaatstuurprogramma's. |
nocache |
Markeert de sectie als niet cachebaar. Handig voor Win32-apparaatstuurprogramma's. |
discard |
Markeert de sectie als verwijderbaar. Handig voor Win32-apparaatstuurprogramma's. |
remove |
Hiermee wordt de sectie gemarkeerd als geen geheugenbewoner. Alleen voor stuurprogramma's voor virtuele apparaten (VxD). |
Als u geen kenmerken opgeeft, bevat de sectie read
en write
kenmerken.
Voorbeeld
In dit voorbeeld identificeert de eerste sectie pragma de sectie en de bijbehorende kenmerken. Het gehele getal j
wordt niet in mysec
geplaatst omdat het niet is gedeclareerd met behulp van __declspec(allocate)
. In plaats daarvan gaat j
naar de gegevenssectie. Het gehele getal i
gaat in mysec
vanwege het kenmerk __declspec(allocate)
opslagklasse.
// pragma_section.cpp
#pragma section("mysec",read,write)
int j = 0;
__declspec(allocate("mysec"))
int i = 0;
int main(){}