C++'ta Koşullu Derleme

Koşullu derleme (şartlı derleme, conditional compilation), derleyicinin derleme sırasında sağlanan parametrelerle üretilen çalıştırılabilir programda farklılıklar oluşturmasını sağlayan derleme gerçekleme yöntemidir.*

Bu teknik, yazılımı farklı platformlarda ya da gerekli kütüphanelerin veya donanımların farklı sürümleriyle çalıştırmak için farklılıklar gerektiğinde yaygın olarak kullanılır.

Pek çok programlama dili koşullu derlemeyi destekler. Sıklıkla derleyici yönergeleri belirli değişkenleri tanımlar veya değişkenlerin tanımlamalarını kaldırır, diğer yönergeler de bu değişkenleri test eder ve derlemeyi buna göre değiştirir.

Örneğin, SDL ve SFML gibi kütüphaneler asıl dili (C veya C++) kullanmadan pencere oluşturumunu, klavye ve fare yönetimini Linux, macOS veya Windows için özel olarak tanımlayabilmektedir. Bunun basitleştirilmiş bir örneği şöyle gösterilebilir:



$ g++ kosullu-derleme1.cpp
$ ./a.out
Linux'tan merhaba

Derleyicilerin çoğu işletim sistemleri için kullanılan değişkenleri tanımlar. Bu değişkenlerle, kodun bazı bölümlerinin yalnızca belirtilen işletim sistemleri hedeflenirken derlenmesi sağlanır. Bu değişkenlerin bir listesi Pre-defined Compiler Macros - Operating Systems'tan görülebilir.

Koşullu derlemenin kullanım alanlarından biri de hata ayıklama sürümüyle kullanıcıya sunulacak nihai sürüm üzerinde kod değişikliğine gerek kalmaksızın farklılıklar oluşturmaktır:

    #if VERBOSE >= 2
    std::cout << "... uyarı mesajı\n";
    #endif

C, C++ ve bu aileden gelen diğer dillerde koşullu derleme için kullanılan yönergeler arasında #if, #ifdef, #ifndef, #else, #elif ve #endif bulunur.

Koşullu derleme hakkında tüm bunları okuduktan sonra Necati Ergin'in konuyla ilgili şu sorusuyla öğrendiklerinizi sınayabilirsiniz.

* Koşullu derleme aslında önişlemci tarafından sağlanır, anlatımı basit tutmak için derleme içinde olduğu söylenmiştir.

Kaynaklar

Yorumlar

Bu blogdaki popüler yayınlar

Diğer Dillerde Hoşçakal

Mızıka Tabları Nasıl Okunur

conio.h