Partager via


data_seg pragma

Spécifie la section de données (segment) dans laquelle les variables initialisées sont stockées dans le fichier objet (.obj).

Syntaxe

#pragma data_seg( [ « section-name » [ , « section-class » ] ] )
#pragma data_seg( { push | pop } [ , identificateur ] [ , « section-name » [ , « section-class » ] ] )

Paramètres

push
(Facultatif) Place un enregistrement sur la pile du compilateur interne. A push peut avoir un identificateur et un nom de section.

pop
(Facultatif) Supprime un enregistrement du haut de la pile du compilateur interne. A pop peut avoir un identificateur et un nom de section. Vous pouvez afficher plusieurs enregistrements à l’aide d’une pop seule commande à l’aide de l’identificateur. Le nom de la section devient le nom de la section de données active après la fenêtre contextuelle.

identifier
(Facultatif) Lorsqu’il est utilisé avec push, attribue un nom à l’enregistrement sur la pile du compilateur interne. Lorsqu’il est utilisé avec pop, affiche les enregistrements hors de la pile interne jusqu’à ce que l’identificateur soit supprimé. Si l’identificateur n’est pas trouvé sur la pile interne, rien n’est dépilé.

l’identificateur permet à plusieurs enregistrements d’être dépilés avec une seule pop commande.

« section-name »
(Facultatif) Nom d’une section. Lorsqu’elle est utilisée avec pop, la pile est dépilée et le nom de section devient le nom de la section de données active.

« section-class »
(Facultatif) Ignoré, mais inclus pour la compatibilité avec les versions de Microsoft C++ antérieures à la version 2.0.

Notes

Une section d’un fichier objet est un bloc nommé de données chargées en mémoire en tant qu’unité. Une section de données est une section qui contient des données initialisées. Dans cet article, les termes segment et section ont la même signification.

La section par défaut du fichier .obj pour les variables initialisées est .data. Les variables non initialisées sont considérées comme initialisées à zéro et stockées dans .bss.

La data_segpragma directive indique au compilateur de placer tous les éléments de données initialisés de l’unité de traduction dans une section de données nommée section-name. Par défaut, la section de données utilisée pour les données initialisées dans un fichier objet est nommée .data. Les variables non initialisées sont considérées comme initialisées à zéro et stockées dans .bss. Une data_segpragma directive sans paramètre de nom de section réinitialise le nom de la section de données pour les éléments de données initialisés suivants sur .data.

Les données allouées à l’aide data_seg de ne conservent aucune information sur son emplacement.

Pour obtenir la liste des noms qui ne doivent pas être utilisés pour créer une section, consultez /SECTION.

Vous pouvez également spécifier des sections pour les variables const (const_seg), les données non initialisées (bss_seg) et les fonctions (code_seg).

Vous pouvez utiliser l’application DUMPBIN.EXE pour afficher les fichiers objet. Les versions de DUMPBIN pour chaque architecture cible prise en charge sont incluses avec Visual Studio.

Exemple

// pragma_directive_data_seg.cpp
int h = 1;                     // stored in .data
int i = 0;                     // stored in .bss
#pragma data_seg(".my_data1")
int j = 1;                     // stored in .my_data1

#pragma data_seg(push, stack1, ".my_data2")
int l = 2;                     // stored in .my_data2

#pragma data_seg(pop, stack1)   // pop stack1 off the stack
int m = 3;                     // stored in .my_data1

int main() {
}

Voir aussi

Pragma directives et mots __pragma _Pragma clés