Zamanınız sınırlı, başkalarının hayatını yaşayarak bunu ziyan etmeyin.

2 Eylül 2014 Salı

Ön İşlemci Direktifleri (Preprocessor Directives)

·         Ön İşlemci :
·         Derleme işleminin ilk adımı C ön işlemcisi tarafından gerçekleştirilir.Bir C ön işlemcisi şu görevleri yapar:
·         .c uzantılı kaynak dosyasını inceler ve bu dosyadan yorumları kaldırır.
·         # işareti ile başlayan ön işlemci direktiflerini ve makroları yorumlayıp bunları kaynak dosyaya ekler.
·         #include ile başla kütüphane dosyalarını kodlara entegre eder.
·         Ön İşlemci Direktifleri
·         Genellikle # işareti ile başlayan komutlara ön işlemci direktifleri(komutları) denir.C ön işlemcisi bu komutları yorumlayarak .c uzantılı kaynak dosyaya entegre eder.
·         #define Komutu :
·         Bu komut iki görev gerçekleştirir:
·         A)Program Sabiti Tanımlamak :

·         Şimdi bir örnek üzerinde konuyu kavramaya çalışalım.


·         const ve #define Arasındaki Farklar :
·         const ve #define benzer amaçlar için kullanılırlar.Aralarındaki farklar ise şunlardır :
·         const bir kod iken #define bir ön işlemci direktifidir.
·         #define kullanıldıktan sonra noktalı virgül kullanılmazken const kullanıldıktan sonra noktalı virgül kullanılır.
·         #define bütün program bloklarında geçerliyken const sadece tanımlandığı blok içerisinde işlevini yapabilir.
·         Şimdi bir örnekle konuyu kavramaya çalışalım


·         B)Makro Tanımlamak :
·         Makrolar fonksiyona benzeyen özel ifadelerdir.Şimdi konuyu bir örneğimizle kavramaya çalışalım.


·         Programdaki en önemli özellik ön işlemci komutlarının tip kontrolü yapmadığıdır.Gördüğünüz gibi makro hem int hemde float tipinden değer döndürmüştür.
·         Bir önemli noktada kod içerisinde makroyu çağırdıktan sonra noktalı virgül kullanılmasıdır.
·         Makro Tanımlamalarında Parantezlerin Önemi :
·         Arkadaşlar direkt olarak örnek üzerinden anlatacağım.Çok iyi bir şekilde anlayacağınızı umuyorum.


Şimdi bir örnekle daha konuyu pekiştirmeye çalışalım.


·         #define Komutunun Diğer Kullanımları :
·         Arkadaşlar şimdi bir örnek ile konuyu kavramaya çalışalım.


·         #define Komutunun Aşırı Kullanılmamasının Nedenleri :
·         Bir c ön işlemcisi C programlama dilini bilmez.#define komutunun yaptığı iş bir metin dosyasında bazı ifadelere karşılık gelen yerleri tümüyle tanımlanan ifadelerle değiştirmektir.
·         Kendimize ait bir söz dizimiz olmasına rağmen bu ön işlemci seviyesinde olur.Derleyicilerin kod biçimleme avantajlarını kaybetmiş oluruz.
·         #ifdef #else #endif Komutları :
·         Arkadaşlar bu komutları bir örnek içerisinde açıklamalar yaparak anlatmaya çalışacağım.


·         #if defined() ve #if !defined() Komutları :
·         Bu komutları #ifdef ve #ifndef komutları ile hiçbir farkı yoktur.
·         #elif Komutu :
·         else if kodunun ön işlemcideki karşılığıdır.Test edilen birden fazla koşulda kullanılır.
·         Şimdi bir örnekle konuyu kavrama çalışalım.


·         #undef Komutu :
·         #define ile tanımlanan sabiti ya da makroyu kendisinden sonraki satırlar için geçer kılmayı sağlar.
·         Şimdi bir örneğimizle konuyu kavramaya çalışalım.


·         #pragma Komutu :
·         Bu komut derleyiciye özel ön işlemci komutlarının yürütülmesini sağlar.Bu derleyiciye özel ve ve ön işlemci direktiflerinin her derleyiciye özel olması sebebiyle araştırılma yapılması gereken bir konudur.
·         #include Komutu :
·         Bu komut kaynak dosyalarının derleyiciye tanıtır ve kaynak dosyaların içerisindeki makroları,sabitleri ve fonksiyonları kullanabiliriz.Nasıl kütüphane ekleneceğiniz artık biliyorsunuz.
·         Eğer kendi kaynak dosyamızı oluşturmak istersek #include “kendikaynakdosyamız.h” yazmamız yeterli olacaktır.

Hiç yorum yok:

Yorum Gönder