{ "title": "C Fonksiyonlar", "image": "https://www.fonksiyon.gen.tr/images/C-Fonksiyonlar-37.jpg", "date": "20.01.2024 23:19:07", "author": "Harun Duman", "article": [ { "article": "
C Fonksiyonlar, programcı tarafından seçilen bir kod bloğunun isim alması için kullanılan araçtır. Fonksiyon ismi program içerisinde çağrıldığında fonksiyonun temsil ettiği kod çalıştırılır. Örneğin bir sayının faktöriyelini hesaplayan aşağıdaki kod parçasını program içerisinde birçok defa yazmak yerine aynı işlemi gerçekleştiren bir fonksiyon tasarlayıp faktöriyel hesabına ihtiyaç duyulduğunda sadece bu fonksiyonun ismini yazmak çok daha pratik olacaktır. İlk programımızda main fonksiyonunu yazarak aslında ilk fonksiyonumuzu da tasarlamış olduk. Tabi ki bu fonksiyonu biz değil işletim sisteminin kendisi çağırmaktadır. Yukarıdaki tasarladığımız fonksiyonu ise biz veya fonksiyonumuzu verdiğimiz başka bir programcı çağıracaktır. Aşağıdaki kod bloğunda faktöriyel fonksiyonunun çağrılıp elde edilen değerin bir değişkene atılması gösterilmektedir. Faktöriyel fonksiyonu kullanılırken öncelikle çağrılacak olan fonksiyonun ismi yazılır ve ardından derleyiciye yazılan ismin bir fonksiyona ait olduğunu açıklayan sol parantez“(” karakteri yazılır (Bu karakteri bulan derleyici“faktöriyel” isminin bir değişkene değil de bir fonksiyona ait olduğu anlaşılmaktadır). Eğer ki fonksiyon yapacağı hesaplama bir veya birden fazla değeri bekliyor ise sol ve sağ parantezler arasına istenilen değerler girilmelidir. Faktöriyel fonksiyonu, hangi sayının faktöriyelini alacağını, çağıranın bu girdiği değerden almaktadır. Fonksiyonun dışarıdan aldığı bu değerlere parametre adı verilmektedir.

C fonksiyonlar dilinde yazım kuralı aşağıdaki gibidir.

Fonksiyonları çağıran kişiye“çağıran” (Caller) veya istemci (Client) adı verilmektedir. Örneğin aşağıdaki kod parçası ile biz çağıran olarak faktöriyel fonksiyonundan 5 sayısının faktöriyelini hesaplamasını istiyoruz. C fonksiyon çağrıldıktan sonra gerekli işlemleri yapıp faktöriyel işleminin sonucunu bulmaktadır. Bulunan sonuçtan çağıranın da haberdar olması için fonksiyon elde ettiği değeri return komutu ile çağırana getirmektedir. Bu işleme değer döndürmek adı verilir.

C fonksiyonlar ismi yazılırken değişken ismi kuralları aynen geçerlidir. Fonksiyon isimleri içerisinde sadece İngilizce karakterler kullanılmalıdır. Türkçe karakterler farklı derleyici ve sistemlerde sorun çıkartabilir. Bu nedenle kesinlikle Türkçe karakter kullanılmamalıdır. Fonksiyon ismi yaptığı iş hakkında bilgi verecek şekilde seçilmelidir.

C fonksiyonlar yapacakları işlemler için kullanıcıdan bilgi isteyebilirler. Örneğin faktöriyel fonksiyonu hangi sayının faktöriyelinin alınacağını çağırandan parametre olarak beklemektedir. Fonksiyon tanımlanırken dışarıdan beklenen değerler göz önünde bulundurulmalı parametreler buna göre yazılmalıdır.

C fonksiyon gövdesi“{” simgesinin hemen ardından başlar ve“}” simgesi ile sona erer. Fonksiyonu bitirmenin başka bir yolu ise return komutunu kullanmaktadır. Return komutu fonksiyonun çağrıldığı noktaya geri dönmesini sağlar. Fonksiyon çağrısı işlemcinin izlediği yolu değiştirmesine neden olmaktadır. Fonksiyon bittiğinde ise çağrının yapıldığı noktadan yolunda devam etmesi gerekir.

C fonksiyonlar işleri bittikten sonra çağrıldıkları noktaya geri dönerler. Fakat kimi fonksiyonlar geri dönerken bir değer getirmezler. Bu fonksiyonların dönüş değerleri void olmalıdır.

C fonksiyonlar çağrıldığında işlemci kodu işletme sırasını değiştirip farklı satırlardaki komutları çalıştırmaya başlayacaktır. Örneğin kodun ustAl fonksiyonu çağrıldığında işlemci main fonksiyonunda devam etmeyip kodları işletmeye başlar. Main fonksiyonu ustAl fonksiyonu geri dönene kadar beklemede kalacaktır. Bu teknik bütün programlama dillerinde mevcuttur.

C fonksiyon çağrısının da makine kodu karşılığı mevcuttur. Fakat çağrı yapılmadan önce de bazı hazırlık işlemlerinin makine kodu ile yapılması gerekir. Derleyicinin bütün işleri doğru şekilde yapabilmesi için çağrılacak fonksiyonun dönüş değeri, ismi ve parametre bilgilerini çağrıdan önce bilmesi gerekir.

Kimi problemler aynı işlemin farklı değerler ile sürekli yapılmasıyla elde edilebilir. Bu tip durumlarda şu ana kadar döngüleri kullanmaya çalıştık. C fonksiyon sayesinde farklı bir çözüm daha üretebiliyoruz.
" } ] }