CodeBlanks Logo Icon CodeBlanks

Özet - Çoklu dosya

  • C kursu
  • Orta seviye
  • Ders 64/116
  • 5 dk

Header, extern ve Makefile'i birleştirerek iki modüllü bir proje yazarsın.

Özet - Çoklu dosya

Bu grupta C projelerini modüllere bölmeyi öğrendin: header/kaynak ayrımı, include guard, extern ile paylaşım, static ile gizleme, Makefile ile derleme otomasyonu ve birden çok modülün birleşimi. Bunlar gerçek C projelerinin temel taşıdır.

Özet görev: tek dosyada iki modüllü bir hesap uygulaması simüle et. Bir modül işlem fonksiyonlarını (add, mul) içerir, diğeri sayaç tutar (static). main her ikisini de çağırır. Bu desen, büyük projelerin küçük bir kesitidir; modüler tasarımın temelini gösterir.

İki modüllü hesap

İki modül simülasyonu: birincisi calc_add ve calc_mul fonksiyonlarını içerir; ikincisi call_count adında static sayaç ve record_call fonksiyonu içerir. record_call her çağrıda sayacı artırır.

main, calc_add ve calc_mul'ü çağırır, sonra her çağrıdan sonra record_call'u çağırır. Sonunda sayacı yazdırır. Bu, gerçek bir C uygulamasının iskeletidir: fonksiyon modülü + durum modülü + main. Makefile bu üç dosyayı derler ve birleştirir; burada tek dosyada simüle ediyoruz.

Uygulama İki modüllü hesap yaz

int calc_add(int a, int b) { return a + b; } ve int calc_mul(int a, int b) { return a * b; } yaz. void record_call(void) { static int c = 0; c++; printf("%d\n", c); } yaz. main içine calc_add(2, 3); record_call(); calc_mul(4, 5); record_call(); ekle. <stdio.h> unutma.

Başlangıç kodu

main.c
#include <stdio.h>

// calc_add, calc_mul ve record_call yaz

int main(void) {
    // calc_add ve calc_mul çağır, sonra record_call
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

int calc_add(int a, int b) {
    return a + b;
}
int calc_mul(int a, int b) {
    return a * b;
}
void record_call(void) {
    static int c = 0;
    c++;
    printf("%d\n", c);
}

int main(void) {
    calc_add(2, 3);
    record_call();
    calc_mul(4, 5);
    record_call();
    return 0;
}

Beklenen çıktı

1
2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir modülün iç yardımcısı nasıl gizlenir?

  • static ile Doğru cevap
  • extern ile
  • #include ile
  • Makefile ile

Açıklama: static dosya-yerel yapar ve dışarıdan gizler.

2 Modül araçlarını eşle

Kavram Anlamı
header Genel API
static İç yardımcılar
extern Global paylaşım
Makefile Derleme otomasyonu

Orta seviye bölümündeki tüm dersler