Önişlemci Komutları: #include, #define ve #ifdef Nedir?

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

Önişlemci Komutları: Derleme Öncesi Hazırlık​


Önişlemci komutları, derleyiciye kodun nasıl işlenmesi gerektiği hakkında talimatlar verir. Bu komutlar birer C++ deyimi değildir; bu yüzden sonlarına noktalı virgül (;) konulmaz.



1. #include: Dosya Dahil Etme​


En çok kullandığımız komuttur. Belirtilen dosyanın tüm içeriğini, komutun yazıldığı satıra kopyalar.

< > (Açılı Ayraç): Standart kütüphane dosyaları için kullanılır. Derleyici bu dosyayı sistem klasörlerinde arar.
Örnek: #include <iostream>

" " (Tırnak): Kendi yazdığınız yerel dosyalar için kullanılır. Derleyici dosyayı projenin kendi klasöründe arar.
Örnek: #include "ayarlar.h"



2. #define: Makro Tanımlama​


Bu komut, kod içinde belirli bir ifadeyi başka bir ifadeyle değiştirmek için kullanılır. Bir nevi "sabit" oluşturur ancak bu sabit bellekte yer kaplamaz; sadece derleme öncesi metin değişiminden ibarettir.

C++:
#define PI 3.14159
#define MAKSIMUM_HIZ 120

// Kodun içinde PI gördüğü her yere 3.14159 yazar.

Uyarı: Modern C++'ta, tip güvenliği (type safety) nedeniyle #define yerine const veya constexpr kullanımı daha çok önerilir.



3. Koşullu Derleme: #ifdef, #ifndef ve #endif​


Bu komutlar, kodun belirli kısımlarının sadece belirli durumlarda derlenmesini sağlar. Özellikle farklı işletim sistemlerine (Windows/Linux) özel kod yazarken veya kütüphane çakışmalarını önlerken kullanılır.

C++:
#define DEBUG_MODU

int main() {
#ifdef DEBUG_MODU
cout << "Su an hata ayiklama modundasiniz." << endl;
#endif

cout << "Program calisiyor..." << endl;
return 0;

}

Header Guards (Başlık Korumaları): Bir başlık dosyasının yanlışlıkla birden fazla kez dahil edilmesini engellemek için #ifndef (if not defined) kullanılır.

C++:
#ifndef AYARLAR_H
#define AYARLAR_H

// Kütüphane kodları buraya gelir

#endif



Önişlemci Komutlarının Özeti​


Komutİşlevi
#includeDışarıdaki bir dosyayı mevcut koda ekler.
#defineMetin tabanlı takma ad veya makro oluşturur.
#ifdefBelirtilen makro tanımlıysa aşağıdaki kodu derler.
#ifndefBelirtilen makro tanımlı değilse aşağıdaki kodu derler.
#pragma onceModern Header Guard (dosyanın sadece bir kez dahil edilmesini sağlar).



Sonuç​


Önişlemci komutları, kodunuzun esnekliğini ve taşınabilirliğini artırır. Özellikle büyük projelerde dosya çakışmalarını önleyen #ifndef yapısı ve projeyi farklı platformlara hazırlayan koşullu derleme komutları hayati önem taşır.
 
Geri
Üst