Özet - Bağlayıcı
- C kursu
- Uzman
- Ders 36/47
- 5 dk
Nesne dosyaları, relocation ve ELF'i birleştirerek bir sembol görüntüleyici yazarsın.
Özet - Sembol görüntüleyici
Bu derste nesne dosyaları, relocation ve ELF kavramlarını birleştirerek bir sembol görüntüleyici yazacaksın. Program, üç fonksiyon tanımlar; her birinin adını yazdırır; toplam sayıyı verir; son olarak birini çağırıp sonucu gösterir.
Her fonksiyon bir semboltür: bağlayıcı bunları sembol tablosuna kaydeder. Fonksiyon adlarını yazdırmak, sembol tablosunun içeriğini görüntülemeye benzer. Çağrı ise sembol çözümleme ve relocation mantığını çalışma zamanında gösterir. Bu alıştırma, bağlayıcı konularını tek bir programda birleştirir.
Uygulama Sembol görüntüleyici yaz
Üç fonksiyon tanımla: int add(int a, int b) { return a + b; }, int sub(int a, int b) { return a - b; }, int mul(int a, int b) { return a * b; }. int main(void) yaz; her fonksiyonun adını printf("Sembol: add\n") biçiminde yazdır (üçü için de), sonra printf("Toplam: 3\n") ve printf("Çağrı: %d\n", add(40, 2)) çağır.
Başlangıç kodu
#include <stdio.h>
// üç fonksiyon tanımla: add, sub, mul
// her birinin adını yazdır
// toplam sayıyı yazdır
// birini çağır ve sonucu yazdırÖrnek çözüm
#include <stdio.h>
int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
int mul(int a, int b) { return a * b; }
int main(void) {
printf("Sembol: add\n");
printf("Sembol: sub\n");
printf("Sembol: mul\n");
printf("Toplam: 3\n");
printf("Çağrı: %d\n", add(40, 2));
return 0;
}Beklenen çıktı
Sembol: add Sembol: sub Sembol: mul Toplam: 3 Çağrı: 42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir sembol görüntüleyici ne gösterir?
- Yalnızca hata kodları
- Sadece bellek adresleri
- Yalnızca derleyici sürümleri
- Fonksiyon ve değişken adları Doğru cevap
Açıklama: Sembol görüntüleyici, sembol tablosundaki adları listeler.
2 İşlev çağrısını tamamla
int add(int a, int b) { return a + b; }
int result = add(40, ____);
int add(int a, int b) { return a + b; }
int result = add(40, 2);
Açıklama: add(40, 2) = 42 sonucunu verir.
3 Kavramı görevine eşle
| Kavram | Anlamı |
|---|---|
Nesne dosyası |
Yeniden konumlandırılabilir |
Sembol |
İsim ve adres |
Relocation |
Adres düzeltme |
ELF |
Dosya biçimi |