Ö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
#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
#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 |