bss_seg pragma

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

Syntaxe

#pragma bss_seg( [ « section-name » [ , « section-class » ] ] )
#pragma bss_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 section devient le nom de section BSS actif 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’elle est utilisée avec pop, la directive affiche les enregistrements 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é.

« 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 section BSS actif.

« 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 BSS est une section qui contient des données non initialisées. Dans cet article, les termes segment et section ont la même signification.

La bss_segdirective indique au compilateur de placer tous les éléments de données non initialisés de l’unité de traduction dans une section BSS nommée section-name.pragma Dans certains cas, l’utilisation de peut accélérer les temps de bss_seg chargement en regroupant les données non initialisées dans une section. Par défaut, la section BSS utilisée pour les données non initialisées dans un fichier objet est nommée .bss. Une bss_segpragma directive sans paramètre de nom de section réinitialise le nom de la section BSS pour les éléments .bssde données non initialisés suivants sur .

Les données allouées à l’aide du fichier bss_segpragma 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 données initialisées (), les fonctions (data_segcode_seg) et les variables const (const_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_bss_seg.cpp
int i;                     // stored in .bss
#pragma bss_seg(".my_data1")
int j;                     // stored in .my_data1

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

#pragma bss_seg(pop, stack1)   // pop stack1 from stack
int m;                     // stored in .my_data1

int main() {
}

Voir aussi

Directives pragma et les __pragma_Pragma mot clé