AMIĞA VE C 0)
Fonksiyonlar:
C dilinin en önemli özelliği olan fonksiyonlar konusuyla yazımıza devam ediyoruz. Bu yazı dizisinde dikkatinizi çekmiş olduğuna inandığım bir özellik, örneklerin ve konunun basit temeller ve işlemler üzerine kurulmuş olmasıdır. Bu sayıdaki konuya kadar en temel yapıları öğrendik. Fonksiyonlar ile konumuz biraz daha ilgi çekici hale gelecektir. Çünkü yazının başlığında yer alan AMIGA ile C arasındaki elle tutulur bağlantıyı fonksiyonlar sağlamaktadır. Fonksiyonları kabaca C diline eklenebilen komutlar şeklinde tanımlayabiliriz. Çünkü örneklerde kullanılan Getchar() ve Printf() aslında C'de tanımlanmış fonksiyonlardır. Biz de benzer fonksiyonları C'de tanımlayabilir, kullanabilir ve hatta daha sonraki kullanımlar için saklayabiliriz. AMIGA programların çoğu bu mantıkla kurulmuştur. Yazılan programlarda AMIGA'nın C fonksiyonları kullanılmıştır. Kullandığı bu fonksiyonlar C derleyicilerinin Library dosyalarında yer almaktadır. Böylece daha önceden yazılmış fonksiyonların yeniden yazılması yerine o fonksiyona verilen standart bir isimle kullanım sağlanmıştır. Bunun için programın başında
# include <library ismi> veya include “library ismi”
ile kullanılması gereken fonksiyona ait dosyalar belirlenir. C dilinde de kullanılan standartlaşmış fonksiyon dosyaları vardır. Bu dosyaların isimlerini programların başında vermek gereklidir. Örneklerde kullandığımız library isminin stdio.h olduğunu belirtelim. Bunun anlamı (Standart input/output) standart giriş çıkış fonksiyonlarıdır. AMIGA için kullanılan library'ler ise çok fazladır ve yüzlerce fonksiyondan oluşmuştur. Bu aşamada AMIGA'da C kullanımı için asıl öğrenilmesi gerekenin bu fonksiyonların işlevlerinin bilinmesi olduğunu belirtelim. Ayrıca AMIGA'nın bu fonksiyonlarını içeren yeterli kaynak ve dökümün Teleteknik'ten temin edilebileceğini belirtmekte de yarar var. Tekrar konumuza dönerek kaynak kitabımızın bu konuya ilişkin güzel bir örneğini inceleyelim.
int i;
for (1-0; i <10; * *i)
printf
)
power (x,n)
int x,n;
işi * *i)
Program, 2 ile -3 sayısının sırasıyla 0'dan 9'a kadar olan sayılarla üssünün alınmasını sağlayıp, ekranda sıralamaktadır. Programı iki parça halinde inceleyebiliriz: Birinci parça main()'in altında yer alan bölüm, ikincisi power()'ın altında yer alan fonksiyon tanımına ilişkin bölüm. Önce ikinci bölümü inceleyelim: Power (x,n) ifadesinde x ve n fonksiyona ilişkin parametrelerdir. X üssün derecesini, n ise üssü alınacak sayıyı ifade etmektedir. Bu parametreler ikinci bölümde yer alan printf(...) içindeki power(2,i) ve power(-3,i)'deki gibi tanımlanır. Fonksiyonun altında yer alan int x,n ile gelen parametrenin tipi belirlenir. Daha sonra içinde fonksiyon ve kullandığı değişkenlerin tanımlaması yapılır. Fonksiyon içindeki int i,p ile tanımlı i ve p sadece bu fonksiyon içinde kullanılır. Programın ilk bölümünde yer alan i değişkeni fonksiyon içindeki i değişkenini etkilemez. Böylece fonksiyonlar için farklı isim arama derdinden de kurtulmuş olur. Bunun aksi durum fonksiyonların artması ile çok önemli bir sorun haline gelebilirdi.
* *i)
p-'x
ifadeleri hesaplama işlevini yerine getirmektedir. Hesapların bitmesi ile sonuç P değişkeninde saklanır. Return(P) ile de bu değer fonksiyonun sonuç değeri olur. 1. programdaki değerlerine karşılık düşer. Önümüzdeki yazıda Lattice-C ve Aztec-C ile programların derlenmesi konusunu inceleyeceğiz.
.“.
Commodore