section pragma

Crée une section dans un fichier OBJ.

Syntaxe

#pragma section( "section-name" [ ,attributs ] )

Notes

Le segment de termes et la section ont la même signification dans cet article.

Une fois qu’une section est définie, elle reste valide pour le reste de la compilation. Toutefois, vous devez utiliser __declspec(allocate), ou rien n’est placé dans la section.

le nom de section est un paramètre obligatoire qui devient le nom de la section. Ce nom ne doit pas être en conflit avec les noms de section standard. Consultez /SECTION la liste des noms que vous ne devez pas utiliser lors de la création d’une section.

attributs est un paramètre facultatif constitué d’un ou plusieurs attributs séparés par des virgules à affecter à la section. Les attributs possibles sont les suivants :

Attribut Description
read Permet les opérations de lecture sur les données.
write Permet les opérations d'écriture sur les données.
execute Permet d'exécuter le code.
shared Partage la section entre tous les processus qui chargent l'image.
nopage Marque la section comme non paginable. Utile pour les pilotes de périphérique Win32.
nocache Marque la section comme non mise en cache. Utile pour les pilotes de périphérique Win32.
discard Marque la section comme dis carte able. Utile pour les pilotes de périphérique Win32.
remove Marque la section comme non résidente en mémoire. Pour les pilotes de périphériques virtuels (VxD) uniquement.

Si vous ne spécifiez aucun attribut, la section a read et write les attributs.

Exemple

Dans cet exemple, la première section pragma identifie la section et ses attributs. L’entier j n’est pas entré mysec car il n’a pas été déclaré à l’aide __declspec(allocate)de . Au lieu de cela, j passe à la section données. L’entier i entre en mysec raison de son __declspec(allocate) attribut de classe de stockage.

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

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

int main(){}

Voir aussi

Directives pragma et les __pragma_Pragma mot clé