Condividi tramite


bss_seg pragma

Specifica la sezione (segmento) in cui le variabili non inizializzate vengono archiviate nel file dell'oggetto (.obj).

Sintassi

#pragma bss_seg( [ "section-name" [ , "section-class" ] ] )
#pragma bss_seg( { push | pop } [ , identificatore ] [ , "section-name" [ , "section-class" ] ] )

Parametri

push
(Facoltativo) Inserisce un record nello stack interno del compilatore. Un push oggetto può avere un identificatore e un nome di sezione.

pop
(Facoltativo) Rimuove un record dalla parte superiore dello stack del compilatore interno. Un pop oggetto può avere un identificatore e un nome di sezione. È possibile visualizzare più record usando un pop solo comando usando l'identificatore . Il nome della sezione diventa il nome della sezione BSS attivo dopo il pop.

identificatore
(Facoltativo) Se usato con push, assegna un nome al record nello stack del compilatore interno. Se usata con pop, la direttiva rimuove i record dallo stack interno fino a quando non viene rimosso l'identificatore . Se l'identificatore non viene trovato nello stack interno, non viene visualizzato nulla.

"section-name"
(Facoltativo) Nome di una sezione. Se usato con pop, lo stack viene estratto e il nome della sezione diventa il nome della sezione BSS attivo.

"section-class"
(Facoltativo) Ignorato, ma incluso per la compatibilità con le versioni di Microsoft C++ precedenti alla versione 2.0.

Osservazioni:

Una sezione di un file oggetto è un blocco denominato di dati caricati in memoria come unità. Una sezione BSS è una sezione che contiene dati non inizializzati. In questo articolo i termini segmento e sezione hanno lo stesso significato.

La bss_segpragma direttiva indica al compilatore di inserire tutti gli elementi di dati non inizializzati dall'unità di conversione in una sezione BSS denominata section-name. In alcuni casi, l'uso di può velocizzare i tempi di bss_seg caricamento raggruppando i dati non inizializzati in una sezione. Per impostazione predefinita, la sezione BSS usata per i dati non inizializzati in un file oggetto è denominata .bss. Una bss_segpragma direttiva senza un parametro section-name reimposta il nome della sezione BSS per gli elementi di dati non inizializzati successivi su .bss.

I dati allocati utilizzando l'oggetto bss_segpragma non conservano informazioni sulla relativa posizione.

Per un elenco di nomi che non devono essere usati per creare una sezione, vedere /SECTION.

È anche possibile specificare sezioni per i dati inizializzati (data_seg), le funzioni (code_seg) e le variabili const (const_seg).

È possibile usare l'applicazione DUMPBIN.EXE per visualizzare i file oggetto. Le versioni di DUMPBIN per ogni architettura di destinazione supportata sono incluse in Visual Studio.

Esempio

// pragma_directive_bss_seg.cpp
int i;                     // stored in .bss
#pragma bss_seg(".my_data1")
int j;                     // stored in .my_data1

#pragma bss_seg(push, stack1, ".my_data2")
int l;                     // stored in .my_data2

#pragma bss_seg(pop, stack1)   // pop stack1 from stack
int m;                     // stored in .my_data1

int main() {
}

Vedi anche

Pragmadirettive e parole __pragma chiave e _Pragma