8.2 Fonksiyon Bildirimi
8.2 Fonksiyon Bildirimi
Bir fonksiyonun bildirimi iki türlü yapılır:
- Ana programdan önce:
12345678...<strong>int topla(int x,int y)</strong> /* fonksiyon */<strong>{ ... }</strong>...main(){...} - Ana programdan sonra: Bu durumda fonksiyon örneği (function prototype) ana programdan önce bildirilmelidir.
12345678910...int topla(int x, int y); /* fonksiyon örneği */...main(){...}...<strong>int topla(int x, int y)</strong> /* fonksiyon */<strong>{ ... }</strong>
Bir C programı içinde, yazmış olduğunuz fonksiyonlar genellikle bu iki tipte kullanılır. İkinci kullanımda fonksiyon prototipi mutlaka bildirilmelidir. Aksi halde bir hata mesajı ile karşılaşılır. Fonksiyon prototipinde arguman isimlerinin yazılması zorunlu değildir. Sadece arguman tiplerini belirtmek de yeterlidir. Yukarıdaki topla fonksiyona ait prototip:
1 |
int topla(int x, int y); |
şekinde yazılabileği gibi
1 |
int topla(int, int); |
şeklinde de yazılabilir.
Buraya kadar anlatılanlar Program 8.1 üzeride özetlenmiştir.
Program 8.1: topla fonksiyonunun ana programda kullanılması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
/* 08prg01.c: iki sayıyı toplar ve sonucu ekranda gösterir */ #include <stdio.h> int topla(int, int); /*** fonksiyon prototipi ***/ int main() { int toplam,a,b; printf("Iki sayi girin : "); scanf("%d %d",&a,&b); /* fonksiyon çağırılıp, a ve b değerleri parametre olarak aktarılıyor. topla(a,b) = a + b değeri toplam değişkenine atanması */ toplam = topla(a,b); printf("%d ve %d nin toplami %d dir.\n", a,b,toplam); return 0; } /*** fonksiyon tanımlanması ***/ /* Bu fonksiyon iki tamsayıyı toplar */ int topla( int x, int y ) { int sonuc; sonuc = x + y; return sonuc; } |
ÇIKTI
1 2 |
Iki sayi girin : 5 12 5 ve 12 nin toplami 17 dir. |
Programda, klavyeden okunan a ve b değişkenleri fonksiyonuna parametre olarak aktarılmıştır. Bu değişkenlerin isimleri ile topla fonksiyonunda kullanılan değişkenlerin (x ve y) isimleri aynı olması zorunlu değildir. Burara a ve b değişkenleri sırasıyla x ve y değişkenleri yerine konmuştur. 16. satırda toplam adlı tamsayı değişkenine topla fonksiyonunun dönüş değeri (a + b değeri) atanmıştır.
Belki karmaşık gelmiş olabilir. Fakat Program 8.1 daha kısa şöyle yazılabilirdi:
Program 8.1b: topla fonksiyonunun ana programda kullanılması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/* 08prg01b.c: iki sayıyı toplar ve sonucu ekranda gösterir */ #include <stdio.h> int topla( int x, int y ){ return (x+y); } int main(void) { int toplam,a,b; printf("Iki sayi girin : "); scanf("%d %d",&a,&b); toplam = topla(a,b); printf("%d ve %d nin toplami %d dir.\n", a,b,toplam); return 0; } |