bss_seg pragma

Başlatılmamış değişkenlerin nesne (.obj) dosyasında depolandığı bölümü (segment) belirtir.

Sözdizimi

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

Parametreler

push
(İsteğe bağlı) İç derleyici yığınına bir kayıt yerleştirir. bir push tanımlayıcıya ve bölüm adına sahip olabilir.

pop
(İsteğe bağlı) İç derleyici yığınının üst kısmından bir kaydı kaldırır. bir pop tanımlayıcıya ve bölüm adına sahip olabilir. Tanımlayıcıyı kullanarak tek bir pop komut kullanarak birden çok kaydı açabilirsiniz. Bölüm adı , pop'un ardından etkin BSS bölüm adı olur.

identifier
(İsteğe bağlı) ile pushkullanıldığında, iç derleyici yığınındaki kayda bir ad atar. ile popkullanıldığında yönergesi, tanımlayıcı kaldırılana kadar iç yığındaki kayıtları açar. Tanımlayıcı iç yığında bulunmazsa hiçbir şey gösterilmez.

"section-name"
(İsteğe bağlı) Bölümün adı. ile popkullanıldığında yığın açılır ve bölüm adı etkin BSS bölüm adı olur.

"section-class"
(İsteğe bağlı) Yoksayılır, ancak 2.0 sürümünden önceki Microsoft C++ sürümleriyle uyumluluk için dahil edilir.

Açıklamalar

Nesne dosyasındaki bölüm, belleğe birim olarak yüklenen adlandırılmış bir veri bloğudur. BSS bölümü, başlatılmamış veriler içeren bir bölümdür. Bu makalede, segment ve bölüm terimleri aynı anlama sahiptir.

yönergesibss_segpragma, derleyiciye çeviri biriminden tüm başlatılmamış veri öğelerini section-name adlı bir BSS bölümüne yerleştirmesini söyler. Bazı durumlarda, kullanımı bss_seg başlatılmamış verileri tek bir bölümde gruplandırarak yükleme sürelerini hızlandırabilir. Varsayılan olarak, bir nesne dosyasında başlatılmamış veriler için kullanılan BSS bölümü olarak adlandırılır .bss. bss_segpragma Bölüm adı parametresi olmayan bir yönerge, sonraki başlatılmamış veri öğelerinin .bssBSS bölüm adını olarak sıfırlar.

kullanılarak bss_segpragma ayrılan veriler, konumu hakkında hiçbir bilgi saklamaz.

Bölüm oluşturmak için kullanılmaması gereken adların listesi için bkz /SECTION. .

Ayrıca, başlatılan veriler (), işlevler (data_segcode_seg) ve const değişkenleri (const_seg) için bölümler de belirtebilirsiniz.

Nesne dosyalarını görüntülemek için DUMPBIN.EXE uygulamasını kullanabilirsiniz. Desteklenen her hedef mimari için DUMPBIN sürümleri Visual Studio'ya eklenir.

Örnek

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

Ayrıca bkz.

Pragma yönergeleri ve __pragma ve _Pragma anahtar sözcükleri