C Programlama Dilinde define Önişlemci Direktifi

  • 27-10-2020 11:46
  • 3506

define önişlemci direktifi ile yeni bir ifade tanımlamada kullanılır. Tanımlanan ifade bir sabit olabileceği gibi daha karmaşık ifadeler de olabilir.

Programlamada okunabilirliği arttırmak daha sade bir kodlama ile mümkündür. Bunun için her dilde kullanılan yerleşmiş kurallar bulunur, bunlara uymak okunabilirliği arttırır ve bu sayede daha anlaşılır programlar yazılabilir. C'de bu kuralların bir parçasıda gerekli yerde define önişlemci komutunu kullanmaktır.

define bir önişlemci direktifidir, bunun anlamı program derlenmeden define ile tanımlı ifadelerin yerlerine değerleri yazılır ve program ondan sonra derlenir. define direktifi indef ve ifdef önişlemci direktifleri ile birlikte kullanılabilir.

define tanımlama kuralları:

Önce #define ifadesi yazılır boşluk verilerek tanımlanacak isim yazılır tekrar boşluk verilerk değer yazılır.

Aynı isimle yalnızca bir ifade yazılabilir.

define ifadesinin sonuna noktalı virgül konulmaz.

Örnek define kullanımı 1:


#include <stdio.h>
#define PI 3.14159 int main() { double yari_cap=5; double alan; alan=yari_cap * yari_cap * PI; printf("Alan:%f\n",alan); return 0; }

Yukarıdaki örnekte program içinde PI geçen her yere PI'nin değeri olan 3.14159 değeri yazılır. Bu kullanımın iki amacı vardır ilki okunabilirliği arttırmak ikincisi ise değişiklik yapılmak istendiğinde değişikliğin tek bir nokta yapılmasıdır. Örnekte daha hassas bir hesaplama için PI sayısı değiştirilmek istendiğinde yalnızca define ifadesinde değişiklik yapılması yeterlidir, PI ifadesinin geçtiği her yere yeni değer geçerli olur.

Örnek define kullanımı 2:


#include <stdio.h>
//İki değerden büyük olanı veren ifade #define Max(a,b) a>b?a:b int main() { int r; int c,d; c=9; d=12; r=Max(c, d); printf("Sonuç:%d\n",r); return 0; }

Bir ifadenin tanımlı olup olmadığını yine önişlemci direktifi olan ifdef ile denetleyebiliriz. Bu kullanım ile bazı kodların derlenmesi define tanımlanmasına bağlanabilir. ifdef ve endif ifadelereri arasına yazılan kodlar eğer define ile ifade tanımlanmışsa derlenir.

Örnek define kullanımı 3:


#include <stdio.h>
#define HATA_AYIKLAMA int main() { #ifdef HATA_AYIKLAMA printf("Program hata ayıklama modunda çalışıyor.\n"); #endif return 0; }

Bu örnekte ise printf fonksiyonu yalnızca HATA_AYIKLAMA tanımlı ise derlenir aksi durumda derlenmez. HATA_AYIKLAMA tek bir dosya içinde tanımlanır ve projenin her dosyasına include ile dahil edilirse hata ayıklama modu tek bir noktadan değiştirilebilir.