C Programlama Dilinde Fonksiyonlar

  • 15-12-2018 06:00
  • 4608

Birçok programlama dilinde fonksiyonlar sıkça kullanılır. Buradaki amaç belli bir işi yapan program parçasını tekrar tekrar yazmak yerine programın yaptığı işlevi yerine getiren bir fonksiyon yazarak tekrar kullanılabilir bir yapı oluşturmak. Aynı zamanda sık kullandığınız ve benzer işlevleri yerine getiren fonksiyonları bir araya getirip bir kitaplık oluşturabilirsiniz. C programla dili için yazılmış çok sayıda kitaplık vardır. İytiyaç duyduğunuz bir işlevi aratıp ona uygun bir kitaplık bulabilirsiniz.

C programlama dilinde fonksiyon tanımları fonksiyon dönüş veri tipi ile başlar ardından fonksiyon ismi yazılır daha sonra parantez açılarak fonksiyon argümanları veri tipleri ile birlikte yazılır ve virgülle ayrılır. Süslü parantezler arasına da fonksiyon içeriği yazılır. Aşağıda tanımlanmış bir fonksiyon var.

int Max(int a,int b){
	
	if(a>b){
		return a;
	}

	return b;
}

Yukarıdaki fonksiyon iki sayıdan büyük olanı geri döndürüyor. Program akışında return anahtar kelimesi ile karşılaşınca program fonksiyondan çıkar. Örneğe geri dönecek olursak if ifadesi ile a ve b karşılaştırılıyor eğer a büyük ise program a değeri ile fonksiyondan çıkıyor. Eğer a b'den küçük veya eşit ise if'ten sonraki return b değeri ile fonksiyondan çıkıyor.

Yazdığımız bu fonksiyonun aşağıdaki gibi kullanabiliriz.

int sonuc=Max(8,3);

stırı ile fonksiyonu çağırıyoruz a değişkeninin değeri 8, b değişkeninin değeri 3 oluyor. Sonuc olarak a değeri olan 8 daha büyük olduğu için geri döndürülüyor ve bu değer sonuc değişkenine kaydediliyor. Bu örnekte Max fonksiyonunu kullanmadan main fonksiyonu içinde sayıları karşılaştırabilirdik. Ama böyle yaparsak programın başka bir yerinde böyle bir karşılaştırma yapmak istersek programın o noktasında yeniden karşılaştırma yapmak zorunda kalırız. Fonksiyon kullanarak hem daha az kod yazarak bu işlemi yapmış oluruz daha da önemlisi okunabilirliği arttırmış oluruz.

#include <stdio.h>

int Max(int a,int b){
	
	if(a>b){
		return a;
	}

	return b;
}

int main() {
 
	int sonuc=Max(8,3);    //Max fonksiyonu çağrılıyor fonksiyonun dönüş değeri sonuc değişkenine kaydediliyor
	printf("Karsilastirma sonucu=%d",sonuc); //Sonucu ekrana yaz

	getchar();             //Enter tuşuna basılana kadar bekle

	return 0;
}

 

Fonksiyon Prototipleri

Fonksiyonları kullanabilmek için kullandığımız yerden önce tanımlı olması gerekir. Tanım fonksiyonun kendisi olabileceği gibi prototipide olabilir. Fonksiyon prototipi fonksiyon argümanlarının tipleri ve dönüş tipinden oluşur. Yukarıdaki fonksiyonun prototipi aşağıdaki gibi iki farklı şekilde de kullanılabilir. Baştaki int dönüş tipi parantezler içindeki kısım fonksiyon argumanlarıdır. İkinci örnekte fonksiyon argümanlarının değişken isimleri de yazılmış, daha açıklayıcı olması bakımından ikinci örnek tercih edilebilir. C programlama dilinde değişkeni ya da fonksiyonu kullanmadan önce tanımlamalıyız.

int Max(int,int);

int Max(int a,int b);