const_seg
Spécifie le segment où les variables de const sont stockées dans le fichier .obj.
#pragma const_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 de const est .rdata.Certaines variables de const , telles que les propriétés scalaires, sont automatiquement inline dans le flux du code.Le code inline ne s'affichera pas dans .rdata.
const_seg sans paramètres réinitialise le segment à .rdata.
push(facultatif)
Met à jour un enregistrement sur la pile interne du compilateur.push peut avoir un identificateur et un segment- nom.bruit (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 bruit, 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é.En utilisant l'identificateur active plusieurs enregistrements à un pop à l'aide d'une commande unique de bruit .
« segment-nom »(facultatif)
le nom d'un segment*.* Lorsqu'elle est utilisée avec bruit, 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_const_seg.cpp
// compile with: /EHsc
#include <iostream>
const int i = 7; // inlined, not stored in .rdata
const char sz1[]= "test1"; // stored in .rdata
#pragma const_seg(".my_data1")
const char sz2[]= "test2"; // stored in .my_data1
#pragma const_seg(push, stack1, ".my_data2")
const char sz3[]= "test3"; // stored in .my_data2
#pragma const_seg(pop, stack1) // pop stack1 from stack
const char sz4[]= "test4"; // stored in .my_data1
int main() {
using namespace std;
// const data must be referenced to be put in .obj
cout << sz1 << endl;
cout << sz2 << endl;
cout << sz3 << endl;
cout << sz4 << endl;
}
Commentaires
Consultez /SECTION pour une liste des noms que vous ne devez pas utiliser en créant une section.
Vous pouvez également spécifier les sections relatives à des données initialisées (data_seg), des données non initialisées (bss_seg), les fonctions et (code_seg).