Fonksiyonlarda Parametre ve Geriye Değer Döndürme

C programlama dilinde fonksiyonlarda parametre , kodun okunabilirliğini artıran, tekrar eden işlemleri tek bir yerde toplayan temel yapı taşlarıdır.
Bu yazıda fonksiyonlarda parametre kullanımı ve geriye değer döndürme konusunu sade ama teknik bir yaklaşımla ele alacağız.

Fonksiyon Nedir ve Neden Kullanılır?

Fonksiyonlar, belirli bir görevi yerine getiren kod bloklarıdır.
C dilinde programlar genellikle main() fonksiyonu ile başlar ancak gerçek projelerde birçok yardımcı fonksiyon kullanılır.

Fonksiyon Kullanmanın Avantajları

  • Kod tekrarını azaltır
  • Bakımı ve güncellemeyi kolaylaştırır
  • Programı modüler hale getirir

Peki bir fonksiyon dışarıdan nasıl veri alır ve sonuç nasıl geri döner?
İşte bu noktada parametreler ve return devreye girer.

C Dilinde Fonksiyon Parametreleri

Fonksiyonlarda Parametre
Fonksiyonlarda Parametre

Fonksiyonlarda parametre’nin kullanım amacı ; fonksiyona dışarıdan veri göndermektir..
Bu veriler fonksiyon tanımında belirtilir ve çağırma sırasında gönderilir.

Parametre Alan Basit Bir Fonksiyon


#include <stdio.h>

void yazdir(int sayi) {
    printf("Gelen sayi: %d\n", sayi);
}

int main() {
    yazdir(10);
    return 0;
}

Bu örnekte yazdir fonksiyonu bir adet int parametre alır.
Fonksiyon çağrılırken gönderilen değer, fonksiyon içindeki değişkene kopyalanır.

Birden Fazla Parametre Kullanımı


int topla(int a, int b) {
    return a + b;
}

C dilinde fonksiyonlara birden fazla parametre gönderilebilir.
Parametreler virgül ile ayrılır ve sıralama önemlidir.

Fonksiyonlardan Geriye Değer Döndürme (return)

Fonksiyonlarda Parametre
Fonksiyonlarda Parametre

Bir fonksiyonun yaptığı işlemin sonucunu çağıran koda iletmesine
geri değer döndürme denir.
Bu işlem return anahtar kelimesi ile yapılır.

Return ile Değer Döndüren Fonksiyon


#include <stdio.h>

int kareAl(int x) {
    return x * x;
}

int main() {
    int sonuc = kareAl(5);
    printf("Sonuc: %d\n", sonuc);
    return 0;
}

Burada kareAl fonksiyonu bir int değer döndürür.
Döndürülen değer, sonuc değişkenine atanır.

Void Fonksiyonlar ile Return Arasındaki Fark

Fonksiyonlarda Parametreler
Fonksiyonlarda Parametreler

Eğer bir fonksiyon geri değer döndürmeyecekse, dönüş tipi void olarak tanımlanır.


void mesajGoster() {
    printf("Merhaba C!\n");
}

Bu tür fonksiyonlar işlem yapar ancak sonuç üretmez.
Sence her fonksiyon mutlaka değer döndürmeli mi?
Yorumlarda fikrini paylaşabilirsin.

Pointer Kullanarak Fonksiyonlardan Değer Döndürme

Fonksiyonlarda parametreler ve pointer
Fonksiyonlarda parametreler ve pointer

C dilinde bir fonksiyon sadece tek bir değer döndürebilir.
Birden fazla sonuç üretmek için pointer (işaretçi) kullanılır.

Pointer ile Değer Değiştirme Örneği


#include <stdio.h>

void degistir(int *a) {
    *a = 20;
}

int main() {
    int sayi = 5;
    degistir(&sayi);
    printf("Yeni deger: %d\n", sayi);
    return 0;
}

Bu örnekte fonksiyon, değişkenin adresini alır ve doğrudan bellekteki değeri değiştirir.
Bu yöntem, C dilinde fonksiyonlardan birden fazla sonuç almak için sıkça kullanılır.

Sık Yapılan Hatalar ve İpuçları

Return Tipi ile Döndürülen Değer Uyumsuzluğu

Fonksiyonun dönüş tipi ile return edilen değer aynı olmalıdır.
Aksi halde derleme hatası veya mantıksal hata oluşur.

Parametrelerin Kopya Olduğunu Unutmak

Normal parametreler değer kopyası olarak gönderilir.
Orijinal değişkeni değiştirmek istiyorsan pointer kullanmalısın.

Bu yazıdan sonra kendi fonksiyonlarını daha bilinçli yazabileceğini düşünüyor musun?
Aşağıda sorularını veya örneklerini paylaşabilirsin.

SSS (FAQ)

 

C dilinde fonksiyon kaç değer döndürebilir?

→ Doğrudan yalnızca bir değer döndürebilir, birden fazla sonuç için pointer kullanılır.

Void fonksiyonlarda return kullanılır mı?

→ Değer döndürmez, ancak erken çıkış için return; kullanılabilir.

Parametreler fonksiyonda neden değişmiyor?

→ Çünkü C dilinde parametreler varsayılan olarak kopya olarak gönderilir.

Pointer kullanmak zorunlu mu?

→ Hayır, ancak fonksiyon içinde dış değişkeni değiştirmek istiyorsan gereklidir.

Kaynakça:

  • Brian W. Kernighan, Dennis Ritchie – The C Programming Language

  • https://en.cppreference.com/w/c/language/function

  • Geeksforgeeks.org

İlgili Yazılar