- Makro ikamesi (#define)
- Program Özellikleri (#property)
- Dosya Ekleme (#include)
- Fonksiyonların İçe Aktarımı (#import)
- Koşullu Derleme (#ifdef, #ifndef, #else, #endif)
Koşullu Derleme (#ifdef, #ifndef, #else, #endif)
Önişlemci yönergeleri derleyici tarafından derlenmeden önce kaynak kodunu ön işleme koymak için kullanılır. Yönerge her zaman # ile başlar, bu nedenle derleyici değişkenlerin, fonksiyonların vb. simlerinde sembol kullanımını yasaklar.
Her direktif ayrı bir girdi ile tanımlanır ve satır sonuna kadar geçerlidir. Bir girişte birkaç yönergeyi kullanamazsınız. Yönerge girişi çok büyükse, '\' simgesini kullanarak birkaç satıra bölünebilir. Bu durumda, bir sonraki satır direktif girişinin bir devamı olarak kabul edilir.
Önişlemci koşullu derleme direktifleri, belirli bir koşulun gerçekleşmesine bağlı olarak, programın bir bölümünü derlemenizi veya atlamnızı sağlar.
Bahsedilen bu koşul aşağıdaki şekillerden birini alabilir.
#ifdef identifier
|
#ifndef tanımlayıcı
|
Koşullu derleme direktiflerinin tümü, muhtemelen #else direktifini taşıyan ve #endif ile sonlanan herhangi sayıda satır ile devam edebilir. Onaylanan koşulun doğru olması durumunda #else ve #endif arasında kalan satırlar gözardı edilir. Onaylanan koşul gerçekleşmemişse, kontrol ile #else direktifi (veya biçimlendiricinin olmaması durumunda #endif direktifi) arasında kalan tüm satırlar gözardı edilir.
Örnek:
#ifndef TestMode
|
Standart makrolar, program tipine ve derleme moduna bağlı olarak şu şekilde tanımlanırlar:
__MQL5__ makrosu bir *.mq5 dosyası derlenirken, __MQL4__ makrosu ise bir *.mq4 dosyası derlenirken tanımlanır.
_DEBUG makrosu, hata ayıklama modunda,
_RELEASE makrosu ise sürüm modunda derleme yapılırken tanımlanır.
Örnek:
//+------------------------------------------------------------------+
|