Menu
Coddy logo textTech

Kaynak Dosyaları

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

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

Bu, üç bölümden oluşan temiz bir yapı oluşturur: üst bilgi dosyası işlevleri bildirir, ayrı bir kaynak dosyası bunları tanımlar ve main bunları basitçe kullanır. Şöyle görünür:

// 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 edin. 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 gerekir; add işlevinin dahili olarak nasıl çalıştığını bilmesine gerek yoktur.

Bu ayrım, uygulama ayrıntılarını gizli tutar ve bu işlevleri kullanan dosyalara dokunmadan işlev mantığını değiştirmenize olanak tanır.

challenge icon

Görev

Kolay

Kodunuzu 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 main dosyası.

Üç dosya oluşturacaksınız:

  • math_ops.h: İki işlem için fonksiyon bildirimlerini içeren başlık dosyanız: multiply ve subtract. Her iki fonksiyon da iki tamsayı alır ve bir tamsayı döndürür. MATH_OPS_H sembolünü kullanarak koruma eklemeyi unutmayın.
  • math_ops.c: multiply ve subtract fonksiyonlarının gerçek uygulamalarını içeren kaynak dosyanız. Bildirimlerin tanımlarla eşleşmesini sağlamak 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 kullanan main dosyanız.

multiply fonksiyonu iki tamsayının çarpımını, subtract ise birinci tamsayıdan ikinci tamsayının çıkarılmasıyla elde edilen sonucu döndürmelidir.

İki tamsayı girdisi alacaksınız: a ve b.

main fonksiyonunuzda her iki işlemin sonuçlarını ayrı satırlara yazdırın:

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, sonucu sakla
    
    // TODO: subtract fonksiyonunu a ve b ile çağır, sonucu sakla
    
    // TODO: Sonuçları şu formatta yazdır:
    // Çarpım: {multiply sonucu}
    // Fark: {subtract 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