Biri sembol tablosunun C ve C++ bağlamında ne olduğunu açıklayabilir mi?
Burada sembol tablolarının ortak ve ilgili iki anlamı vardır.
İlk olarak, nesne dosyalarınızda sembol tablosu bulunur. Genellikle, bir C veya C++ derleyicisi, tek bir kaynak dosyayı bir .obj veya .o uzantılı bir nesne dosyasına derler. Bu, linkerin çalışan bir uygulamaya veya paylaşılan kütüphaneye işleyebileceği bir çalıştırılabilir kod ve veri koleksiyonu içerir. Nesne dosyası, nesne dosyasındaki farklı öğeleri bağlayıcının anlayabileceği adlarla eşleştiren, içinde sembol tablosu adı verilen bir veri yapısına sahiptir. Kodunuzdan bir işlev çağırırsanız, derleyici, yordamın son adresini nesne dosyasına koyamaz. Bunun yerine, koda yer tutucu bir değer koyar ve bağlayıcının işlediği tüm nesne dosyalarındaki çeşitli simge tablolarındaki referansı bulmasını ve son konumunu oraya yapıştırmasını söyleyen bir not ekler.
İkincisi, paylaşılan bir kütüphane veya DLL sembol tablosu da var. Bu linker tarafından üretilir ve kütüphanenin kullanıcıları tarafından görülebilen tüm fonksiyonları ve veri öğelerini adlandırmaya yarar. Bu, sistemin çalışma zamanı bağlantısı yapmasını sağlar; bu adlara açık referansları kütüphanenin belleğe yüklendiği konuma çözümler.
Daha fazla bilgi edinmek istiyorsanız, John Levine'nin "Linker and Loaders" adlı mükemmel kitabını öneriyorum. link text
Kısacası, meta değişkenine benzer tip, kapsam ve boyut da dahil olmak üzere kendi adresindeki bir değişkene atadığınız ismin haritalanmasıdır. Derleyici tarafından kullanılır.
Genel olarak, sadece C [++] * değil. Teknik olarak, her zaman doğrudan bellek adresini içermez. Derleyicinin hangi dili, platformu vb. Hedeflediğine bağlıdır.
Linux'ta şu komutu kullanabilirsiniz:
nm [nesne dosyası]
bu nesne dosyasının sembol tablosunu listelemek için.
Sembol tablosu, bir programdaki/ünitedeki "sembollerin" listesidir. Semboller genellikle değişkenlerin veya işlevlerin adlarıdır. Sembol tablosu, hafızadaki değişkenlerin veya fonksiyonların nerede bulunacağını belirlemek için kullanılabilir.
Sembol Tablosu wikipedia girişini inceleyin.
Sembol tablosu, değişken isimleri, fonksiyon isimleri, nesneler, sınıflar, arayüzler vb. Gibi çeşitli varlıkların oluşumu hakkında bilgi depolamak için derleyiciler tarafından oluşturulan ve korunan önemli bir veri yapısıdır.