Condividi tramite


const_seg

specifica il segmento in cui const le variabili vengono memorizzate nel file obj.

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

Note

Il significato dei termini segmento e sezione essere intercambiabile in questo argomento.

I file OBJ possono essere visualizzati con dumpbin applicazione.Il segmento predefinito nel file obj per const le variabili è .rdata.alcuni const le variabili, come scalari, vengono automaticamente inline nel flusso di codice.Il codice inline non verrà visualizzata in .rdata.

const_seg senza le reimpostato di parametri del segmento a .rdata.

  • richiedere(facoltativo)
    Inserisce un record nello stack interno del compilatore.In richiedere può avere identificatore e nome di un segmento.

  • pop (facoltativo)
    Rimuove un record dall'inizio dello stack interno del compilatore.

  • identificatore (facoltativo)
    una volta utilizzato con richiedere, assegna un nome al record nello stack interno del compilatore.una volta utilizzato con pop, gli schiocchi registra dallo stack interno fino a identificatore viene rimosso, se identificatore non viene trovato nello stack interno, non viene estratto.

    Tramite identificatore consente più record da visualizzare con un singolo pop comando.

  • “nome di un segmento„(facoltativo)
    il nome di un segmento*.* una volta utilizzato con pop, lo stack viene prelevato e nome di un segmento diventa il nome di un segmento attivo.

  • “segmento-classe„ (facoltativo)
    Incluso per la compatibilità con C++ precedenti alla versione 2,0.Viene ignorato.

Esempio

// 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;
}
  

Commenti

vedere /SECTION per un elenco dei nomi non è necessario utilizzare quando si crea una sezione.

È anche possibile specificare le sezioni per i dati inizializzati su (data_seg), dati non inizializzata (bss_seg) e funzioni (code_seg).

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma