Condividi tramite


data_seg

Specifica il segmento di dati in cui le variabili inizializzate vengono memorizzate nel file obj.

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

Note

Il significato dei termini i segmenti e la sezione è intercambiabile in questo argomento.

I file OBJ possono essere visualizzati con l'applicazione di dumpbin .Il segmento predefinito nel file obj per le variabili inizializzate è .data.Le variabili che si trovano non inizializzati vengono considerate essere inizializzate su zero e vengono archiviate in bss

data_seg senza parametri reimposta il segmento a .data.

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

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

  • identificatore (facoltativo)
    Una volta utilizzato con push, assegna un nome al record nello stack interno del compilatore.Una volta utilizzati con pop, gli schiocchi registra dallo stack interno fino a rimuovere l'identificatore ; se l'identificatore non viene trovato nello stack interno, non viene estratto.

    l'identificatore consente più record da visualizzare con un unico comando di pop .

  • “nome di un segmento„(facoltativo)
    Il nome di un segmento*.* Una volta utilizzato con pop, lo stack viene prelevato e il 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 ignorata.

Esempio

// 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() {
}

I dati allocati mediante data_seg non mantengono le informazioni sulla posizione.

Vedere /SECTION per un elenco di nomi che non è necessario utilizzare quando si crea una sezione.

È anche possibile specificare le sezioni per le variabili const (const_seg), i dati non inizializzata (bss_seg) e le funzioni (code_seg).

Vedere anche

Riferimenti

Direttive pragma e la parola chiave di __Pragma