Gibi bir şey yapabilmek isterdim
#print "C Preprocessor got here!"
hata ayıklama amacıyla. Bunu yapmanın en iyi / en taşınabilir yolu nedir?
Gibi bir şey yapabilmek isterdim
#print "C Preprocessor got here!"
hata ayıklama amacıyla. Bunu yapmanın en iyi / en taşınabilir yolu nedir?
Yanıtlar:
warning
Yönerge muhtemelen size en yakın seçenek, ama tamamen platformdan bağımsız değil:
#warning "C Preprocessor got here!"
AFAIK bu, üzerinde bir pragma
yönerge kullanmanız gereken MSVC dışındaki çoğu derleyicide çalışır :
#pragma message ( "C Preprocessor got here!" )
#define WARNING(msg) _Pragma("message " #msg)
Başka bir çözüm de yorumları ve bunları işlemek için bir kabuk komut dosyası kullanmaktır. Bu biraz disiplin (veya yazım hatalarını yakalayan bir kabuk betiği) gerektirir.
Örneğin, biçimlendirilmiş yorumları //TODO
ve ardından hepsini bir raporda toplayan bir kabuk betiği ekliyorum .
Daha karmaşık kullanım durumları için kendi basit ön işlemcinizi yazmayı deneyebilirsiniz. Örneğin, kaynaklarınızı *.c2
dosyalar olarak düzenleyebilirsiniz . Basit ön işlemci kaynağı okur, arar //TODO
ve printf("TODO ...")
çıktı *.c
dosyasına yazar.
Yapamazsın. Önişlemciler C kodundan önce işlenir. Ekrana yazdırılacak önişlemci yönergeleri yoktur, çünkü önişlemci kodu çalıştırılmadığından, çalıştırılabilir koda derlenecek C kodunu oluşturmak için kullanılır.
Yanlış olan herhangi bir şey:
#ifdef ...
printf("Hello");
#endif
Çünkü önişlemciler söz konusu olduğunda yapabileceğiniz tek şey bu.
#ifdef _LINUX #define #preprocmsg "#warning" else #define #preprocmsg "#pragma message"
... Bunu denemem gerek ama içgüdü bana cevabın hayır olduğunu söylüyor.