Fonksiyon prototipi
- C kursu
- Başlangıç
- Ders 68/116
- 5 dk
Fonksiyon prototipi (declaration) ve sırasını öğrenirsin.
Fonksiyon prototipi
Prototip, fonksiyonun imzasını önceden bildiren satırdır. Derleyiciye "bu fonksiyon daha aşağıda tanımlı" der.
int add(int, int); /* prototip */
int main(void) {
int s = add(2, 3);
return 0;
}
int add(int a, int b) { /* tanım */
return a + b;
}Prototip olmadan, tanım main'den sonraysa derleyici uyarı verir. Modern C'de #include ile gelen başlık dosyaları da prototip içerir.
Başlık dosyaları ve prototip
#include <stdio.h> gibi satırlar, kütüphane fonksiyonlarının prototiplerini dosyana ekler. Bu yüzden printf'i tanımlamadan çağırabilirsin.
#include <stdio.h>
int main(void) {
printf("%d\n", 42); /* prototip stdio.h'tan gelir */
return 0;
}Standart kütüphane fonksiyonlarını kullanırken ilgili başlığı eklemek zorunludur; yoksa derleyici yanlış dönüş türü varsayabilir.
Uygulama Prototip ve tanım birlikte
int square(int); prototipini main'den önce yaz. main içinde printf("%d\n", square(5)); çağrısı olsun. main'den sonra int square(int x) { return x * x; } tanımını yaz. Çıktı 25 olmalı.
Başlangıç kodu
#include <stdio.h>
/* square prototipi */
int main(void) {
/* printf %d ile square(5) çağır */
return 0;
}
/* square tanımı */Örnek çözüm
#include <stdio.h>
int square(int);
int main(void) {
printf("%d\n", square(5));
return 0;
}
int square(int x) {
return x * x;
}Beklenen çıktı
25
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Fonksiyon prototipi ne işe yarar?
- Derleyiciye imzayı önceden bildirir Doğru cevap
- Fonksiyonu hızlandırır
- Fonksiyonu çağrılabilir yapar
- Fonksiyonu yeniden adlandırır
Açıklama: Prototip, derleyiciye fonksiyon imzasını önceden bildirir.
2 Prototip satırı
int add(int, ____); /* prototip */
int add(int, int); /* prototip */
Açıklama: Prototipte yalnız tür yazılır; ad isteğe bağlıdır.
3 Prototip eşleştir
| Kavram | Anlamı |
|---|---|
int add(int, int); |
prototip |
int add(int a, int b) { |
tanım başı |
add(2, 3); |
çağrı |
#include <stdio.h> |
başlık |