15 Nisan 2015 Çarşamba

Standart C Kütüphanesi


      Altprogramlama yeteneği olan programlama dilleriyle yazılmış programlar parçacıklardan -teknik ismiyle modüllerden- oluşur. C'de bu modüllere fonksiyon adı verilir. Fonksiyonlar programcı tarafından yazılabileceği gibi Standart C Kütüphanesindeki hazır fonksiyonlar da kullanılabilir. Bunların bir kısmı alternatifi olmayan fonksiyonlar olsa da büyük bir bölümünü programcı kullanmayıp kendi fonksiyonunu yazabilir. Örneğin;  kütüphane içindeki <stdio.h> başlık dosyasında bulunan printf() fonksiyonu olmadan ekrana yazı yazdırmak olanaksızdır. Ancak <math.h> başlık dosyasındaki pow() fonksiyonu kullanmadan da üst alma işlemi yapılabilir. Bunlar gibi birçok örnek verilebilir ancak biz bu yazımızda fonksiyonları incelemeye kalkarsak buradan çıkamayız. Bunu her fonksiyon için ayrı bir başlık açarak, detaylı bir anlatımla yapacağız. Bu yazımızda Standart Kütüphaneyi kullanmamın sağladığı faydalardan bahsedeceğiz.

      Az önce pow() fonkiyonu kullanmadan da üst alma işlemi yapılabilir dedim. Çok daha karmaşık fonksiyonlar için de bunu söyleyebilirdik. Peki Standart Kütüphane içindeki fonksiyonları kullanmak mı daha avantajlı yoksa aynı işlemi yapan bir fonksiyon yazmak mı? Bunu Paul & Harvey Deitel kardeşlerin yazdığı "C How To Program" adlı kitabından yapacağım tek cümlelik bir alıntıyla cevaplamak isterim. "Avoid reinventing the wheel!" Evet tekerleği yeniden icat etmekten kaçının. Bu size bir şey kazandırmayacağı gibi en çok ihtiyacınız olan zamanınızı da kaybettirmiş olacak. Üstelik icat ettiğiniz tekerleğin araçlarla uyumsuzluk problemiyle de karşı karşıya kalabileceksiniz. Çünkü Standart Kütüphanedeki fonksiyonlar tüm sistem derleyicilerinde ortak tanımlanmıştır ve sorunsuz bir şekilde tüm işletim sistemlerinde çalışırlar. Sizin yarattığınız fonksiyonlar ise -komutların taşınabilirliği konusunda fikir sahibi değilseniz- her zaman risk içerirler. Tabi bu demek değildir ki fonksiyon yazmayalım. Aksine en verimli ve hızlı çalışan programın fonksiyonlardan meydana geldiğini tekrar hatırlatalım. Burada anlatmaya çalıştığımız aynı işi yapan fonksiyon yazmak yerine Standart Kütüphanedeki fonksiyonları kullanmanın daha doğru olduğudur. Nitekim onlar daha özenli yazılmışlardır ve daha kararlı çalışırlar.

      Bir de başka programcıların yazdığı fonksiyonlar vardır. Bu fonksiyonları da tıpkı kendi yazdığınız fonksiyonlar gibi kullanabilirsiniz. Ancak bunları iyice incelemek ve komutların tam olarak ne yaptığından emin olmak gerekir. Aksi taktirde sizi ve programı yazdığınız şirketi büyük zararlara uğratabilir.

Tavsiye

Ülkemizde üniversite hocaları "İngilizce bilmeniz gerekir" bahanesiyle derslerini yabancı kaynaklardan anlatmaya alıştıkları için Türkçe kaynak sıkıntısı her alanda kendini belli ediyor. Yabancı kaynakların çoğunun Türkiye'ye ulaşmaması da cabası. Millet olarak bilgi üretimi konusunda bu isteksizliğimiz bilgiyi de ithal etmemize sebep oluyor. Bu da beraberinde çok ciddi sorunlar getiriyor. Bu konu hakkında uzun bir makale yazılabilir ancak konumuzla ne alakası var diye soranları daha fazla bekletmek istemem. Standart C Kütüphanesindeki fonksiyonları bilmemiz gerektiğini söylemiştim. Bunları derslerimizde de anlatacağız ama içinizden birileri "Tüm fonksiyonları bulabileceğim bir kitap yok mu?" diye merak ediyorsa "The Standard C Library" adlı P.J.Plauger'ın yazdığı çok faydalı bir kitap var. Ben üniversite kütüphanesinde rast gelmiştim ancak satın almak için araştırma yaptığımda tek seçenek Amazon'du. Amerika'dan gelen kitap dile gelip "Noluyo lan!" der diye vazgeçtim. Yani sonuç olarak kitap yok, siz monitöre bir göz dinlendirici bakın.


Sonuç

Standart kütüphanedeki fonksiyonlar özenle yazıldığı için bunları kullanmak programın performansını ve verimini arttırır. Aynı zamanda tüm sistemlere uyumlu olduklarından dolayı taşınabilirliğe de önemli katkısı olur.

Mustafa Altun

0 yorum:

Yorum Gönder