Birçok programlama dilinde olduğu gibi, C programlama dilinde de, fonksiyonlar temel yapı taşlarından birisidir. Bizde bu yazımızda C dilinde fonksiyonlar konusunu işleyeceğiz ve bir kaç örnek vereceğiz.

Programlama Dillerinde Fonksiyonlar Nedir ?

Öncelikle fonksiyonlar nedir ? Ne işe yarar ? gibi soruları yanıtlamakta fayda var.

Herhangi bir programlama dili ile kod yazarken fonksiyonları kullanırsanız, kodunuz daha modüler ve okunabilir hale gelir. Modüler olması sayesinde, programınızda bir yerde değişiklik yapmak istediğinizde tüm kodunuzda değil, sadece fonksiyon içerisinde değişiklik yapmanız yeterli olacaktır. Ayrıca, fonksiyonlar sayesinde bir kod parçacığını defalarca kez yazmaktan kurtulursunuz. Bu sayede hem zamandan, hem de programınızın kullanacağı alandan kazanırsınız.

Fonksiyonların faydalarından bahsettik. Şimdi de bunları nasıl yaptığından bahsedelim. Bir örnekle çok daha iyi anlaşılacağını düşünüyorum. Örneğin bir program yazıyoruz ve programımızda 5 ayrı yerde kullanıcıya hesap makinesi ile işlem yaptırmamız gerekiyor. Eğer fonksiyonları kullanmazsak, 5 ayrı yerde hesap makinesi programının kodlarını yazmak zorunda kalırız. Bunun önüne geçmek için fonksiyon kullanmak zorundayız. Hesap makinesi programının kodunu bir fonksiyon içerisine yazdığımızda, tek satır kod ile bu hesap makinesini kodumuzun istediğimiz kısmında kullanabiliriz.

C Programlama Dilinde Fonksiyonların Yapısı

veri-türü fonk-ismi(parametreler){
    //kodlar
    return degişken; //bazı durumlarda kullanılır bazı durumlarda kullanılmaz
}

Önemli : Fonksiyonlar main fonksiyonunun dışına yazılır.

Şimdi bu yapıyı açıklayalım.

veri-türü : Fonksiyonumuzun hangi veri türünde olacağını burada belirtiriz. Örneğin, bir tam sayı ile işlem yapacaksak fonksiyonumuzun veri tipi ‘int’ olmalı.

fonk-ismi : Main içerisinde çağırabilmemiz için fonksiyona isim vermeliyiz.

parametreler : Eğer fonksiyon içerisinde, main içerisindeki değişkenleri kullanmamız gerekirse, parametreler yardımı ile yaparız. Örneğin bir toplama işlemi yapacaksak, main içerisinde olan iki sayıyı parametreler ile fonksiyona yollarız.

return : Türkçe anlamı dönüş ve bunu da tam olarak karşılar. Az önceki örnekteki gibi, mainden gelen iki sayıyı toplamışsak, bunu tekrar maine return ile göndeririz. Yani sonucun tekrar maine döndüğü kısım diyebiliriz. Dikkat edilmesi gerek bir durum, return ile gönderilen değer veya değişken fonksiyon ile aynı veri tipinden olmalıdır.

C Programlama Dilinde Fonksiyon Tipleri

C programlama dilinde genel anlamda 2 çeşit fonksiyon tipi vardır. Bunlar değer döndürmeyen fonksiyonlar ve değer döndüren fonksiyonlar.

Değer Döndürmeyen Fonksiyonlar

Değer döndürmeyen fonksiyonlar, veri türü olmayan fonksiyonlardır. Veri tipi olarak void kullanılır. Ana fonksiyona değer döndürmezler. Dolayısıyla değer return kullanılmaz.

Bu yazı dikkatini çekebilir.   C Programlama Döngüler (for, while, do while)

Değer döndürmeyen fonksiyonları da iki başlıkta inceleyebiliriz. Bunlar, parametresiz ve parametrelidir.

Parametresiz Değer Döndürmeyen Fonksiyonlar

Fonksiyona herhangi bir parametre yollamadığımız fonksiyonlardır. Herhangi bir değer döndürmez. Fonksiyonların en basit halidir. Hemen bir örneğini görelim.

#include <stdio.h>

void yazdir(){ // Fonksiyon 
     printf("Evrensel Kod");
}

int main(){
     yazdir(); //Fonksiyonu burada çağırıyoruz. 
}

Çıktısı :

Parametresiz Değer Döndürmeyen Fonksiyonlar

Parametreli Değer Döndürmeyen Fonksiyonlar

Fonksiyona bir veya daha fazla parametre yolladığımız fakat değer döndürmeyen fonksiyonlardır. Örneğini görelim.

#include <stdio.h>
/*
Parametre olarak aldığımız yas değişkenini fonksiyon içerisinde kullaniciYasi adlı değişkene atıyoruz.
Fonksiyon içerisinde kullaniciYasi olarak gördüğümüz değişken aslında main içerisinden gelen yas değişkeni. 
*/
void donem(int kullaniciYasi){
     if(kullaniciYasi >= 0 && kullaniciYasi < 15){
          printf("Cocuksunuz.");
     }
     else if(kullaniciYasi >= 15 && kullaniciYasi < 30){
          printf("Gencsiniz.");
     }
     else if(kullaniciYasi >= 30 && kullaniciYasi < 55){
          printf("Yetiskinsiniz.");
     }
     else if(kullaniciYasi >= 55 && kullaniciYasi < 120){
          printf("Yaslisiniz.");
     }
     else{
          printf("Yanlis giris yaptiniz.");
     }
}

int main(){
     int yas;

     printf("Kac yasindasin ? ");
     scanf("%d",&yas);
     donem(yas); // yas değişkeninini parametre olarak fonksiyona gönderiyoruz. 
}

Çıktısı :

Parametreli Değer Döndürmeyen Fonksiyonlar

Değer Döndüren Fonksiyonlar

Değer döndüren fonksiyonlar, veri türü olan fonksiyonlardır. Veri tipi olarak int vb. bir veri tipi olmalıdır. Ana fonksiyona yine bu veri tiplerinde değer döndürürler. Hemen bir örnek görelim.

#include <stdio.h>

int topla(int s1, int s2){
     return s1+s2; // ana fonksiyona s1 ve s2 değişkenlerinin toplamını gönderiyoruz. 
}

int main(){
     int sayi1,sayi2,sonuc;

     printf("1. sayi : ");
     scanf("%d",&sayi1);

     printf("2. sayi : ");
     scanf("%d",&sayi2);

     sonuc = topla(sayi1,sayi2); // return ile gelen sayı sonuc değişkenine atanıyor.
     printf("%d + %d = %d", sayi1, sayi2, sonuc);
}

Önemli : Return ile ana fonksiyona gönderilen değer, fonksiyon veri türü ile aynı olmalıdır. Örneğimizde iki sayının toplamı int bir değer olacaktır. Topla isimli fonksiyonunda veri türü int olmalı.

Çıktısı :

Değer Döndüren Fonksiyonlar

C Programlama Fonksiyon Örnekleri

C Programlama İle Dairenin Alanını ve Çevresini Bulan Program

C Programlama Dizideki En Büyük ve En Küçük Sayıyı Bulma

C Programlama Üs Alma

C Programlama Verilen Sayıya Kadar Olan Sayıları Toplama

C Programlama Çarpım Tablosu

C Programlama Dizinin Elemanlarını Toplama

Tüm örnekleri görmek için buraya tıklayabilirsiniz.


C programlama dilinde fonksiyonlar konusunu işledik. Umarım faydalı olmuştur. Anlamadığınız kısımlar var ise yorumlar kısmında belirtebilirsiniz. Diğer C programlama dili derslerimizi de okumak isterseniz buraya tıklayabilirsiniz.