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 push
kullanıldığında, iç derleyici yığınındaki kayda bir ad atar. ile pop
kullanı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 pop
kullanı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 .bss
depolandığı kabul edilir.
yönergesidata_seg
pragma, 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 .bss
depolanır. data_seg
pragma Bölüm adı parametresi olmayan bir yönerge, sonraki başlatılan veri öğelerinin veri bölümü adını olarak .data
sı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_seg
code_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