Dela via


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 pushtilldelar 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 poppoppas 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_segpragma-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_segpragma-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_segpragma 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() {
}

Se även

Pragma-direktiv och nyckelorden __pragma och _Pragma