Software
Trend

[TR] C/C++ Öğreniyorum (#8)

[TR] C/C++ Öğreniyorum (#8)

Giriş

Merhaba, ben Süleyman Kaya. Bilgisayar bilimleri araştırmacısıyım. Bilgisayar bilimleri için C/C++ öğrenirken edindiğim bilgileri paylaşmak üzere bu yayın serisini sizlerle paylaşıyorum. Kaynak olarak Fahrettin Erdinç’in “Mühendislik Öğrencileri İçin Temel Klavuz: C++/C” kitabını kullanacağım. Bu yazımda C dilinde fonksiyonlardan bahsedeceğim.

Fonksiyon Nedir?

Ana program tarafından gerektiğinde çağrılıp çalıştırılan program parçacıklarına fonksiyon denir. Fonksiyonlar, bazı dillerde altprogram, prosedür veya metot adıyla da anılır.

Fonksiyonlara Neden İhtiyaç Duyarız?

Eğer program içinde bazı işlemleri sık yapıyorsak her işlem için kod yazmak yerine bu kodu bir defa yazar ve fonksiyon olarak kaydederiz ve gerektiğinde kullanırız. Zamandan ve koddan tasarruf etmiş oluruz, hamallığı azaltırız. Eğer fonksiyon kullanılmazsa aynı kodlar tekrar tekrar yazılır ve program gereksiz yere uzamış olur. Fonksiyonlar büyük bir programı küçük parçalara bölmemizi ce daha basit küçük parçalar halinde kod yazmamızı sağlar. Böylece algoritma kolaylaşır ve kod yazmak basitleşir.

Örnek Bir Fonksiyon Oluşturalım

Fonksiyonlar C tabanlı dillerde en önemli konulardan biridir çünkü çok sık kullanılır. Bu nedenle çok iyi bilinmesi gereken konulardan biridir. Hatta diyebiliriz ki fonksiyon bilmeden programcı olunmaz. Fonksiyonları öğrenmesi biraz zor olabilir ama öğrendikten sonra çok faydasını göreceğiz.

Kullanıcı Tanımlı Fonksiyonlar

C dilinde fonksiyonlar ikiye ayrılır:

  • C Dili Fonksiyonları: C dilinin bir parçası olan ve kütüphane ya da header dosyaları denen .h uzantılı dosyalar içinde gelen hazır gelir fonksiyonlardır.

Fonksiyon Oluşturulurken Dikkat Edilmesi Gereken Kurallar

  • Fonksiyonlar belli bir işi yapmak için oluşturulmalı ve mümkün olduğunca basit tutulmalıdır. Örneğin hem bir sayının karesini alan hem de sayıyı başka bir sayıyla toplayan (çift işlevli) bir fonksiyon yapılmamalıdır.
  • Fonksiyon adı genel olarak değişken adı kurallarıyla aynı ilkelere sahiptir; değişken tanımlarken kullandığımız kurallar fonksiyonlarda da geçerlidir.
  • Fonksiyonun yapacağı işler yani kodlar/komutlar güzel parantez {} içine yazılmalıdır.
  • Fonksiyon tipi ana programa göndereceği değere göre int, char, double veya void gibi bir veri tipine sahip olabilir.
  • Eğer fonksiyon ana programa bir değişken döndürecekse return (döndür) komutu kullanılır.
  • Fonksiyon ana programa değer döndürmeyecek ise void tipindedir.
  • Fonksiyonlar ana programdan önce tanımlanmalıdır. Eğer daha sonra tanımlanırsa derleme işlemi yukarıdan aşağıya doğru gerçekleşecei için hata alıncakaktır. Eğer fonkiyonu illa ana programdan sonra yazmamız gerekiyorsa fonksiyonumuzun prototipini ana program içinde yazmamız gerekir. Fnksiyonun prototipi veri_tipi fonksiyon_adi(parametreler); şeklinde ana programın üst kısmına yazılır.

Dönüş Tipi

Bir fonksion çalıştıktan sonra ana programa veya çalıştırıldığı fonksiyona bir değer döndürür. Bu değer diğer veriler gibi bir veri tipine sahip olmalıdır. Fonksiyonumuzun isminden önce çıktı olacak verinin tipini yazarız ve böylelikle fonksiyonumuzdan çıkacak değerin, fonksiyonumuzun tipini belirlemiş oluruz. Eğer ana programa veya fonksiyonumuzun çalıştığı bloğa bir değer döndürülmeyecekse fonksiyonumuzun tipi void olmalıdır.

Değer Döndürmeyen Fonksionlar

Bu tür fonkiyonlar ana program tarafından çalıştırılır fakat ana programa bir değer göndermezer. O nedenle bu tür fonksiyonlara veri tipi olarak boş anlamına gelen “void” kelimesi kullanılır.

Tek Parametreli Fonksiyonlar

Parametreler fonksiyona ana program tarafından gönderilen uygun veri tipinde değerlendirilir. Fonksiyon ana programdan gelen değeri alarak bir takım işlemler yapar. Örnek:

Çok Parametreli Fonksiyonlar

Ana programdan fonksiyona birden fazla parametre gönderilirse fonksionumuz çok parametreli bir fonksiyon olur. Birden fazla parametre göndermek için her bir parametrenin arasına virgül (,) konulur. Örnek:

Fonksiyon nasıl çağrılır?

Eğer bir fonksiyonumuz varsa ve bu fonksiyona iş yaptırmak istiyorsak o fonksiyonu çağırmamız yani çalıştırmamız gerektir. Fonksiyonları çağırmak için aşağıdaki yöntemler kullanılabilir:

  • Eğer parametreli bir fonksiyon kullanacaksak ana programdan fonksiyona parametre göndermemiz gerekir. Örneğin topla(int a, int b) şeklinde bir fonksiyon kullanacaksak ilgili değerleri veya değişkenleri fonksiyona göndermemiz gerekir.
  • Fonksiyonları değişkenlere atayarak da kullanabiliriz. Bu durumda fonksiyon çalışır ve döndürdüğü değer değişkene atanır. Örneğin int toplam=topla(4,5); komutunu kullandığımız zaman topla fonksiyonu çalışır ve döndürdüğü değer toplam değişkenine atanır. Döndürülen değerleri saklamak istiorsak bu yöntemi kullanmalıyız.
  • Fonksiyonları başka fonksiyonların içinde de kullanabiliriz. Örneğin: printf(“%d”, topla(4,5)); komutunu çalıştırdığımızda topla fonksiyonu çalışır ve ürettiği değeri printf fonksiyonu içinde döndürür.

Main Fonksiyonu

main() her C programında olmak zorundadır ve adı değiştirilemez. Bazen yeni açılan projelerde main() fonksiyonu void tipindedir çünkü genelde ana program geriye (işletim sistemine) bir değer döndürmez. Örnek:

Fonksiyon Prototipi

Eğer fonksiyon başlığının sonuna noktalı virgül koyarsanız fonksiyon prototipi olur. Örneğin int kare(int x){} fonksiyonunun prototipi kare(int x); olur.

Standart C Dili Fonksiyonları

Fonksiyonlar programcı tarafından oluşturulabilir veya C kütüphanesi içince hazır olarak gelebilir. C programlama diline ait kütüphane dosyalarında kullanılmaya hazır yüzlerce fonksiyon vardır ve bunları kullanmak hem zaman hem de hız kazandırır.

  • <ctype.h> Karakter işlemleri
  • <string.h> Metin işlemleri
  • <stdio.h> Giriş/Çıkış işlemleri
  • <conio.h> Yazı işlemleri
  • <graphics.h> Grafik işlemleri
  • <stdlib.h> Muhtelif işlemler

Kapanış

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu