data_seg pragma

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

Sözdizimi

#pragma data_seg( [ "section-name" [ , "section-class" ] ] )
#pragma data_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 veri 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, tanımlayıcı kaldırılana kadar kayıtları iç yığından açar. Tanımlayıcı iç yığında bulunmazsa hiçbir şey gösterilmez.

tanımlayıcı , tek pop bir komutla birden çok kaydın alınmasına olanak tanır.

"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 veri 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. Veri bölümü, başlatılan verileri içeren bir bölümdür. Bu makalede, segment ve bölüm terimleri aynı anlama sahiptir.

Başlatılan değişkenler için .obj dosyasındaki varsayılan bölüm şeklindedir .data. Başlatılmamış değişkenlerin sıfır olarak başlatıldığı ve içinde .bssdepolandığı kabul edilir.

yönergesidata_segpragma, derleyiciye çeviri biriminden başlatılan tüm veri öğelerini section-name adlı bir veri bölümüne yerleştirmesini söyler. Varsayılan olarak, bir nesne dosyasında başlatılan veriler için kullanılan veri bölümü olarak adlandırılır .data. Başlatılmamış değişkenler sıfıra başlatılmış olarak kabul edilir ve içinde .bssdepolanır. data_segpragma Bölüm adı parametresi olmayan bir yönerge, sonraki başlatılan veri öğelerinin veri bölümü adını olarak .datasıfırlar.

kullanılarak data_seg ayrılan veriler, konumu hakkında hiçbir bilgi tutmaz.

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

Const değişkenleri (), başlatılmamış veriler (const_seg) ve işlevler (bss_segcode_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_data_seg.cpp
int h = 1;                     // stored in .data
int i = 0;                     // stored in .bss
#pragma data_seg(".my_data1")
int j = 1;                     // stored in .my_data1

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

#pragma data_seg(pop, stack1)   // pop stack1 off the stack
int m = 3;                     // stored in .my_data1

int main() {
}

Ayrıca bkz.

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