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