Aracılığıyla paylaş


const_seg

Segment belirtir burada const değişkenleri .obj dosyasında saklanır.

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

Notlar

Terimlerin anlamına segment ve bölüm bu konudaki değiştirilemez.

obj dosyaları ile görüntülenebilir dumpbin uygulama..Obj dosyasında varsayılan kesimi const değişkenleri olan .rdata.Bazı const fazla ilerleyemezdik gibi değişkenleri kod akımına otomatik olarak inlined.İnlined kod .rdata içinde görünmez.

const_seg herhangi bir parametre ile .rdata için segment sıfırlar.

  • İtme(isteğe bağlı)
    İç derleyici yığınında bir kayda geçirir.A İtme sahip bir tanımlayıcısı ve kesim adı.

  • POP (isteğe bağlı)
    İç derleyici yığının başından bir kaydını kaldırır.

  • tanımlayıcı (isteğe bağlı)
    Aşağıdakilerle kullanıldığında İtme, derleyici iç yığında kaydı için bir ad atar.Aşağıdakilerle kullanıldığında pop, kayıtları kadar iç yığından POP tanımlayıcısı kaldırılır; tanımlayıcısı bulunamadı iç yığın üzerinde hiçbir şey popped.

    Kullanarak tanımlayıcısı sağlayan tek bir popped birden çok kayıt pop komut.

  • "kesim adı"(isteğe bağlı)
    Bir parçasının adı*.* Aşağıdakilerle kullanıldığında pop, yığın popped ve kesim adı etkin kesimi adı haline gelir.

  • "segment-class" (isteğe bağlı)
    Sürüm 2.0 için önce C++ ile uyumluluk için dahil.Yoksayılır.

Örnek

// pragma_directive_const_seg.cpp
// compile with: /EHsc
#include <iostream>

const int i = 7;               // inlined, not stored in .rdata
const char sz1[]= "test1";     // stored in .rdata

#pragma const_seg(".my_data1")
const char sz2[]= "test2";     // stored in .my_data1

#pragma const_seg(push, stack1, ".my_data2")
const char sz3[]= "test3";     // stored in .my_data2

#pragma const_seg(pop, stack1) // pop stack1 from stack
const char sz4[]= "test4";     // stored in .my_data1

int main() {
    using namespace std;
   // const data must be referenced to be put in .obj
   cout << sz1 << endl;
   cout << sz2 << endl;
   cout << sz3 << endl;
   cout << sz4 << endl;
}
  

Comments

Bkz: /SECTION , kullanmamalıdır bölümü oluştururken, adları listesi.

Başlatılmamış verileri için bölümleri de belirleyebilirsiniz (data_seg), veri başlatılması geri alındı (bss_seg) ve işlevleri (code_seg).

Ayrıca bkz.

Başvuru

Pragma yönergeleri ve anahtar sözcük __Pragma