Aracılığıyla paylaş


Çeviri aşamaları

C ve C++ programlarında her biri programın metnin bir kısmını içeren bir veya daha fazla kaynak dosyadan oluşur.İçerik dosyaları ile birlikte bir kaynak dosyası (kullanarak dahil olan dosyaları #include Önişlemci yönergesi) gibi koşullu derleme yönergeleri tarafından kaldırılan kodun bölümlerini dahil edilmez, ancak #if, bir "çeviri birimi" olarak adlandırılır

Kaynak dosyaları farklı zamanlarda çevrilmiş — aslında yalnızca güncel dosyaları çevirmek için yaygındır.Çevrilen çeviri birimleri ayrı nesne dosyaları ya da nesne kod kitaplıkları işlenebilir.Bu ayrı, çevrilen çeviri birimleri sonra yürütülebilir bir program veya dinamik bağlantı kitaplığı (dll) oluşturacak şekilde bağlantılıdır.Linker girdi olarak kullanılan dosyaları hakkında daha fazla bilgi için bkz: BAĞLANTI giriş dosyaları.

Çeviri birimleri kullanarak iletişim kurabilirsiniz:

  • Dış bağlantı işlevleri için çağrılar.

  • Dış bağlantı sınıfı üye işlevleri için çağrılar.

  • Dış bağlantı içeren nesneleri doğrudan değiştirilmesi.

  • Dosyaları doğrudan değiştirilmesi.

  • İşlemler arası iletişim (Microsoft Windows tabanlı uygulamalar için yalnızca).

Aşağıdaki listede, derleyici dosyalarını çevirir aşamaları açıklanmaktadır:

  • Karakter eşlemesi
    Kaynak dosyadaki karakter iç kaynak gösterimi eşleştirilir.Trigraph serileri, bu aşamada iç gösterimi tek karakterlik dönüştürülür.

  • Satır splicing
    Ters eğik çizgi içinde biten tüm satırları (\) ve hemen ardından karakter yeni satır katılan fiziksel satırlar mantıksal satırlarından kısalırken kaynak dosyasındaki sonraki satırı.Boş olmadığı sürece, kaynak dosyayı bir ters eğik değil bir yeni satır karakteriyle sona ermelidir.

  • Tokenization
    Kaynak dosya önişleme belirteçleri ve beyaz boşluk karakterleri kırıldı.Kaynak dosyadaki açıklamalar, bir boşluk karakteri ile her yerini alır.Yeni satır karakterlerini korunur.

  • Ön-işleme
    Önişleme yönergeleri yürütülür ve makroları kaynak dosyasına genişletilir.#include Deyimi Yukarıdaki üç çeviri adımlarıyla dahil herhangi bir metin üzerinde başlayarak çeviri çağırır.

  • Karakter kümesi eşleştirmesi
    Üyeler tüm kaynak karakter kümesi ve çıkış sıralarını yürütme karakter kümesinde, nakde dönüştürülür.Microsoft c ve C++, hem kaynak hem de yürütme karakter kümeleri ASCII içindir.

  • Dize bitiştirme
    Tüm bitişik dize ve geniş harflerden birleşir.Örneğin, "String " "concatenation" olur "String concatenation".

  • Çeviri
    Tüm simgeleri, sözdizimsel olarak ve anlam incelenir; Bu simgeleri nesne koduna dönüştürülür.

  • Bağlantı
    Yürütülebilir bir program veya dinamik bağlantı kitaplığı oluşturmak tüm dış başvuruların çözümlenir.

Derleyici sözdizimi hataları bulduğu çeviri aşamaları sırasında uyarı veya hata verir.

Linker tüm dış başvuruların çözümler ve birleştirerek tek bir yürütülebilir program veya dll oluşturur veya daha fazla çeviri birimleri ile birlikte standart kitaplıklara ayrı ayrı işlenir.

Ayrıca bkz.

Başvuru

Önişlemci