Menu
CoddyTech

Kaynak Dosyaları

Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 3 / 61.

Şimdiye kadar fonksiyon bildirimlerini başlık dosyalarına yerleştirdik, ancak gerçek fonksiyon kodu (tanım) ana dosyada bulunuyordu. Modüler programlamadaki bir sonraki adım, bu tanımları kendi kaynak dosyalarına (.c dosyaları) taşımaktır.

Bu, üç parçadan oluşan temiz bir yapı oluşturur: başlık dosyası fonksiyonları bildirir, ayrı bir kaynak dosyası bunları tanımlar ve main yalnızca bunları kullanır. İşte görünümü:

// math_utils.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H

int add(int a, int b);

#endif
// math_utils.c
#include "math_utils.h"

int add(int a, int b) {
    return a + b;
}
// main.c
#include <stdio.h>
#include "math_utils.h"

int main() {
    printf("%d\n", add(5, 3));
    return 0;
}

math_utils.c dosyasının kendi başlık dosyasını içerdiğine dikkat et. Bu, işlev tanımının bildirimle eşleşmesini sağlar; eşleşmezlerse derleyici hatayı yakalar. Ana dosyanın işlevi kullanmak için yalnızca başlık dosyasını içermesi yeterlidir; add işlevinin içeride nasıl çalıştığını bilmesi gerekmez.

Bu ayrım, uygulama ayrıntılarını gizli tutar ve bu işlevleri kullanan dosyalara dokunmadan işlevlerin mantığını değiştirmeni sağlar.

challenge icon

Görev

Kolay

Kodunu uygun üç dosyalı yapıda düzenleyerek basit bir matematik yardımcı programı oluşturalım: bildirimler için bir başlık dosyası, uygulamalar için bir kaynak dosyası ve bunları kullanan bir ana dosya.

Üç dosya oluşturacaksın:

  • math_ops.h: İki işlem için fonksiyon bildirimlerini içeren başlık dosyan: multiply ve subtract. Her iki fonksiyon da iki tam sayı alır ve bir tam sayı döndürür. MATH_OPS_H sembolünü kullanarak koruma eklemeyi unutma.
  • math_ops.c: multiply ve subtract fonksiyonlarının gerçek uygulamalarını içeren kaynak dosyan. Bildirimlerin tanımlarla eşleştiğinden emin olmak için bu dosya kendi başlık dosyasını içermelidir.
  • main.c: Başlık dosyasını içeren ve hesaplamaları yapmak için her iki fonksiyonu da kullanan ana dosyan.

multiply fonksiyonu iki tam sayının çarpımını döndürmeli, subtract ise ilk tam sayıdan ikinci tam sayıyı çıkarmanın sonucunu döndürmelidir.

İki tam sayı girdisi alacaksın: a ve b.

Ana fonksiyonunda her iki işlemin sonucunu ayrı satırlara yazdır:

Product: {result of multiply}
Difference: {result of subtract}

Örneğin, girdiler 8 ve 3 olduğunda çıktı şöyle olur:

Product: 24
Difference: 5

Kendin dene

#include <stdio.h>
#include "math_ops.h"

int main() {
    int a, b;
    scanf("%d", &a);
    scanf("%d", &b);
    
    // TODO: multiply fonksiyonunu a ve b ile çağırın, sonucu saklayın
    
    // TODO: subtract fonksiyonunu a ve b ile çağırın, sonucu saklayın
    
    // TODO: Sonuçları şu biçimde yazdırın:
    // Çarpım: {multiply fonksiyonunun sonucu}
    // Fark: {subtract fonksiyonunun sonucu}
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi