Partager via


data_seg

Spécifie le segment de données dans lequel les variables initialisées sont stockées dans le fichier .obj.

#pragma data_seg( [ [ { push | pop }, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] )

Notes

La signification des termes segment et section sont interchangeable dans cette rubrique.

Les fichiers OBJ peuvent être affichés avec l'application de poubelle .Le segment par défaut dans le fichier .obj pour les variables initialisées est .data.Les variables qui sont non initialisées sont considérées comme pour être initialisées à zéro et sont stockées dans les bss

data_seg sans paramètres réinitialise le segment à .data.

  • push(facultatif)
    Met à jour un enregistrement sur la pile interne du compilateur.push peut avoir un identificateur et un segment- nom.

  • pop (facultatif)
    Supprime un enregistrement du haut de la pile interne du compilateur.

  • identificateur (facultatif)
    En cas de utilisation avec push, assigne un nom à l'enregistrement de la pile interne du compilateur.Lorsqu'ils sont utilisés avec pop, les sons stocke en dehors de la pile interne jusqu'à ce que l'identificateur soit supprimé ; si l'identificateur est introuvable dans la pile interne, rien n'est dépilé.

    l'identificateur active plusieurs enregistrements à un pop à l'aide d'une commande unique de pop .

  • « segment-nom »(facultatif)
    Le nom d'un segment*.* Lorsqu'elle est utilisée avec pop, la pile est dépilée et le segment-nom devient le nom de segment actif.

  • « segment-classe » (facultatif)
    Inclus pour la compatibilité avec C++ antérieures à la version 2,0.Il est ignoré.

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 "stack_data1"

int main() {
}

Les données allouée à l'aide de data_seg ne conserve aucune information sur son emplacement.

Consultez /SECTION pour une liste des noms que vous ne devez pas utiliser en créant une section.

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

Voir aussi

Référence

Directives pragma et le mot clé de __Pragma