CodeBlanks Logo Icon CodeBlanks

Modül tasarımı

  • C kursu
  • Orta seviye
  • Ders 13/116
  • 6 dk

Yardımcı kütüphane modülünün iskeletini tasarlarsın.

Proje: Yardımcı kütüphane

Bu beş derslik projede bir yardımcı kütüphane (helper library) yapacaksın. Her ders bir parça ekler; son derste tüm yardımcıları çağıran bir program elde edersin.

Önceki gruplardaki işaretçiler, dinamik bellek ve dize işleme bilgisini kullanacaksın. Proje boyunca altı yardımcı fonksiyon tanımlayacaksın: str_len, str_is_empty, num_abs, num_sign, arr_max ve arr_sum. Bu ilk derste modülün iskeletini kuracaksın: başlık bildirimleri ve main.

Başlık dosyası yapısı

Bir başlık dosyası, fonksiyon bildirimlerini (prototipleri) içerir. Bildirim, fonksiyon imzasını noktalı virgülle bitirmektir: int str_len(const char *s);.

Burada const char *s, parametrenin değiştirilmeyeceğini söyler. Birden çok bildirimi yan yana yazabilirsin; her biri noktalı virgülle biter. Bildirimler derleyiciye fonksiyonun varlığını bildirir; tanımlar başka dosyada olabilir. Bu ayrım, büyük projelerde modülerlik sağlar.

Uygulama Modül iskeletini yaz

Altı yardımcının prototip bildirimlerini ekle: int str_len(const char *s);, int str_is_empty(const char *s);, int num_abs(int n);, int num_sign(int n);, int arr_max(int *a, int n);, int arr_sum(int *a, int n);. int main(void) yaz; içinde printf ile "Modül hazır" yazdır.

Başlangıç kodu

main.c
#include <stdio.h>

// helpers.h bildirimleri:
// str_len, str_is_empty, num_abs, num_sign, arr_max, arr_sum

// main: "Modül hazır" yazdır

Örnek çözüm

main.c
#include <stdio.h>

int str_len(const char *s);
int str_is_empty(const char *s);
int num_abs(int n);
int num_sign(int n);
int arr_max(int *a, int n);
int arr_sum(int *a, int n);

int main(void) {
    printf("Modül hazır\n");
    return 0;
}

Beklenen çıktı

Modül hazır

Soru ve cevaplar

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

1 C'de fonksiyon bildirimleri hangi dosyada tutulur?

  • .txt düz dosyada
  • .c kaynak dosyasında
  • .o nesne dosyasında
  • .h başlık dosyasında Doğru cevap

Açıklama: Bildirimler .h başlık dosyasında, tanımlar .c kaynak dosyasında olur.

2 str_len prototipini tamamla

Soru
int str_len(const char ____);
Cevap
int str_len(const char *s);

Açıklama: const char *s, değiştirilemez bir dize işaretçisidir.

3 Yardımcıları amacına eşle

Kavram Anlamı
str_len Dize boyu
num_abs Mutlak değer
arr_max En büyük eleman
arr_sum Dizi toplamı

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