·
Ö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