21 Nisan 2009 Salı

C Preprocessoru Hakkında Bir Zıbıdık

C ve C++'ın kendi çaplarında, lisp'le falan kıyaslandığında oldukça dandik kaçan bir makro sistemi var. Bugün o makro sistemiyle ilgili ufak, ama güzel bir şey keşfettim. Daha önce şu preprocessorda böyle bir şey olsa iyi olur demiştim, bugün öğrendim ki varmış. Şimdi şu kodcana bir bakalım;

#include
#define birlestir(x,y) x##y
main(){
int zbdk = 42;
printf("%d\n", birlestir(zb,dk));
}

bu yukarıdaki basit örnekte, preprocessorla iki sembolü birleştirip tek bir identifier haline getirebildiğimizi farkediyoruz, ve bu noktada benim gibi bu özellikten haberdar olmayan güruh "Yok artık!" çekiyor. İşe yarayabilir aslında.

Hiç yorum yok:

Yorum Gönder