Functions

Kategori: C , 22 Haziran 2019 , JanFranco


Yazdığımız programlar, yazılımlar başka insanlar tarafından anlaşılabilir, okunabilir olmalıdır. Bunun için kodlarımızı bir düzene oturtmalıyız ve mümkün olduğunca kısa tutmalıyız. Bunu gerçekleştirebilmek için de mutlaka kod tekrarından kaçınmalıyız. Kod tekrarını engellemek için fonksiyonlar çok önemlidir. Fonksiyonlar aşağıdaki gibi tanımlanır:


<return type> <function name>(<parameters>){

}
Örnek bir fonksiyon yazalım ve kullanalım:

int plus_one(int n){
    return n + 1;
}

int main(void){
    int i = 10, j;
    j = plus_one(i);
    printf("i + 1 = %d\n", j);
    return 0;
}
plus_one adında bir fonksiyon tanımladık. Return edeceği sayı bir integer değer olduğundan return tipini int yaptık. Parametre olarak da bir integer değer alacağından n adında bir integer parametre tanımladık. Fonksiyon parametre olarak aldığı sayıyı bir artırarak return etmekte. main fonksiyonunda da i adında integer bir değişken tanımladık ve bu değişkenin değerini 10 yaptık. Bu değişkeni fonksiyona gönderdik ve return olarak döndüreceği değeri j değişkenine atadık. Daha sonra da j değişkeninin değerini ekrana bastırdık. Bir örnek daha yapalım:

void increment(int a){
    a++;
}

int main(void){
    int i = 10;
    increment(i);
    printf("%d",i);
    return 0;
}
Burada increment fonksiyonunun return tipi void olarak atanmıştır. Yani return edilecek bir değer yoktur. main fonksiyonunda bir değişken tanımladık ve değerini 10 yaptık. Bu değişkeni fonksiyona gönderdik. Daha sonra printf fonksiyonu ile değişkenin değerini ekrana bastırdık. Burada ekrana basılacak değerin 11 olmasını bekleriz ancak 10 olduğunu görürüz. Bunun sebebi fonksiyonların yapısı ile alakalıdır. Biz bir değişken oluşturup bir fonksiyona parametre olarak gönderdiğimizde compiler bir kopya değişken oluşturur. Burada o kopya değişkenin değeri bir artarak 11 olmuştur ancak i değişkenimizin değeri hala 10 olarak kalmıştır. Burada yapılan işlem 'passing by value' olarak da bilinir.


Sonraki Yazı: Function Prototypes
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın