08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

İŞLEVLER<br />

İşlev Nedir?<br />

C'de alt programlara işlev (function) denir. İngilizcedeki "function" sözcüğü bu bağlamda<br />

matematiksel anlamıyla değil diğer programlama dillerinde ya da ortamlarında kullanılan,<br />

"alt program", "prosedür", sözcüklerinin karşılığı olarak kullanılır.<br />

Bir işlev, bağımsız olarak çalıştırılabilen bir program parçasıdır.<br />

Programı İşlevlere Bölerek Yazmanın Faydaları<br />

Bir programı alt programlara yani işlevlere bölerek yazmak bazı faydalar sağlar:<br />

1. Programın kaynak kodu küçülür. Böylece oluşturulması hedeflenen çalışabilir dosya da<br />

(örneğin .exe uzantılı dosya) küçülür.<br />

2. Kaynak dosyanın okunabilirliği artar. Okunabilirliğin artması, kodu yazanın ve okuyanın<br />

işini kolaylaştırır. Böylece proje geliştirme süresinin azalması yönünde kazanım sağlanmış<br />

olur.<br />

3. Belirli kod parçalarının programın farklı yerlerinde yinelenmesi, programda yapılacak<br />

olası bir değişikliğin maliyetini artırır. Programın farklı yerlerinde, kodun kullanıldığı yere<br />

bağlı olarak değişiklikler yapmak gerekir. Kaynak dosyalarda böyle değişiklikler yapmak<br />

hem zaman alıcıdır hem de risklidir. Çünkü bir değişikliğin yapılmasının unutulması<br />

durumunda ya da değişiklik yapılmaması gereken bir yerde kodun değiştirilmesi<br />

durumunda program yanlış çalışabilir. Oysa ortak kod parçaları işlevler şeklinde<br />

paketlendiğinde, yalnızca işlevlerde değişiklik yapılmasıyla, istenen değişiklik<br />

gerçekleştirilmiş olur.<br />

4. Programda hata arama daha kolay gerçekleştirilir. Projelerdeki hata arama maliyeti<br />

azalır.<br />

5. Yazılan işlevler başka projelerde de kullanılabilir. Alt programlar tekrar kullanılabilir<br />

(reusable) bir birim oluştururlar. Böylelikle de projelerdeki kodlama giderlerini azaltırlar.<br />

İşlevler C'nin temel yapı taşlarıdır. Çalıştırılabilen bir C programı en az bir C işlevinden<br />

oluşur. Bir C programının oluşturulmasında işlev sayısında bir kısıtlama yoktur.<br />

İşlevlerin onları çağıran işlevlerden aldıkları girdileri ve yine onları çağıran işlevlere<br />

gönderdikleri çıktıları vardır. İşlevlerin girdilerine aktüel parametreler (actual parameters)<br />

ya da argümanlar (arguments) denir. İşlevlerin çıktılarına ise geri dönüş değeri (return<br />

value) diyoruz.<br />

Bir işlev başlıca iki farklı amaçla kullanılabilir:<br />

1. İşlev, çalışması süresince belli işlemleri yaparak belirli amaçları gerçekleştirir.<br />

2. İşlev, çalışması sonunda üreteceği bir değeri kendisini çağıran işleve gönderebilir.<br />

İşlevlerin Tanımlanması ve Çağrılması<br />

Bir işlevin ne iş yapacağının ve bu işi nasıl yapacağının C dilinin sözdizimi kurallarına<br />

uygun olarak anlatılmasına, yani o işlevin C kodunun yazılmasına, o işlevin tanımı<br />

(definition) denir. İşlev tanımlamaları C dilinin sözdizimi kurallarına uymak zorundadır.<br />

Bir işlev çağrısı (call / invocation) ise o işlevin kodunun çalışmaya davet edilmesi<br />

anlamına gelir. İşlev çağrı ifadesi karşılığında derleyici, programın akışını ilgili işlevin<br />

kodunun bulunduğu bölgeye aktaracak şekilde bir kod üretir. Programın akışı işlevin kodu<br />

içinde akıp bu kodu bitirdiğinde, yani işlevin çalışması bittiğinde, programın akışı yine<br />

işlevin çağrıldığı noktaya geri döner. Bir işleve yapılacak çağrı da yine bazı sözdizimi<br />

kurallarına uymalıdır.<br />

53/529

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!