bss_seg
pragma
Anger det avsnitt (segment) där oinitierade variabler lagras i objektfilen (.obj).
Syntax
#pragma bss_seg(
[ "section-name" [,
"section-class" ] ] ])
#pragma bss_seg(
{push
|pop
} [,
identifierare ] [,
"section-name" [,
"section-class" ] ] ])
Parametrar
push
(Valfritt) Placerar en post på den interna kompilatorstacken. En push
kan ha en identifierare och avsnittsnamn.
pop
(Valfritt) Tar bort en post överst i den interna kompilatorstacken. En pop
kan ha en identifierare och avsnittsnamn. Du kan visa flera poster med bara ett pop
kommando med hjälp av identifierare. Det avsnittsnamnet blir det aktiva BSS-avsnittsnamnet efter popen.
identifierare
(Valfritt) När det används med push
tilldelar du posten ett namn på den interna kompilatorstacken. När det används med pop
, dyker direktivet upp poster från den interna stacken tills identifierare tas bort. Om identifierare inte finns i den interna stacken, visas ingenting.
"section-name"
(Valfritt) Namnet på ett avsnitt. När den används med pop
poppas stacken och avsnittsnamn blir det aktiva BSS-avsnittsnamnet.
"section-class"
(Valfritt) Ignoreras, men ingår för kompatibilitet med versioner av Microsoft C++ tidigare än version 2.0.
Anmärkningar
Ett avsnitt i en objektfil är ett namngivet datablock som läses in i minnet som en enhet. Ett BSS-avsnitt är ett avsnitt som innehåller oinitierade data. I den här artikeln har termerna segment och avsnitt samma innebörd.
I bss_seg
pragma-direktivet uppmanas kompilatorn att placera alla onitialiserade dataobjekt från översättningsenheten i ett BSS-avsnitt med namnet avsnittsnamn. I vissa fall kan användningen av bss_seg
påskynda inläsningstider genom att gruppera oinitierade data i ett avsnitt. Som standard heter BSS-avsnittet som används för onitialiserade data i en objektfil .bss
. Ett bss_seg
pragma-direktiv utan ett avsnittsnamn parameter återställer BSS-avsnittsnamnet för efterföljande onitialiserade dataobjekt till .bss
.
Data som allokeras med hjälp av bss_seg
pragma behåller ingen information om dess plats.
En lista med namn som inte ska användas för att skapa ett avsnitt finns i /SECTION
.
Du kan också ange avsnitt för initierade data (data_seg
), funktioner (code_seg
) och const-variabler (const_seg
).
Du kan använda DUMPBIN.EXE-programmet för att visa objektfiler. Versioner av DUMPBIN för varje målarkitektur som stöds ingår i Visual Studio.
Exempel
// 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() {
}