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 (
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 |
|---|---|
| #include | Dışarıdaki bir dosyayı mevcut koda ekler. |
| #define | Metin tabanlı takma ad veya makro oluşturur. |
| #ifdef | Belirtilen makro tanımlıysa aşağıdaki kodu derler. |
| #ifndef | Belirtilen makro tanımlı değilse aşağıdaki kodu derler. |
| #pragma once | Modern 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.