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
#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
#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
int str_len(const char ____);
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ı |