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).