2011-12-13 5 views
7

ben gibi rahatsız edici mesajlarla biberli oluyor bir başlık dosyasını tüketen ediyorum. İletilerin yazdırılmasını durdurmak için bu dosyayı eklemeden önce yapabileceğim bir şey var mı?Visual C++ uygulamasında #pragma iletisini ("...") devre dışı bırakabilir misiniz? hiçbir gerçek sorunları olduğunda temiz bir yapı çıktı tercih ediyorum</p> <pre><code>// annoying.h: #pragma message("Compiling " __FILE__) </code></pre> <p>:

// not_annoying.cpp: 

// PUT MAGIC HERE 
#include "annoying.h" 
+0

Başlık başka bir gruptan teslim edilir; her seferinde manuel olarak değiştirmek için uygun görünmüyor. Ancak, onu 'sed' ile çalıştıran bir pre-build adımı düşünmüştüm. – Eric

cevap

8

Sadece kaybolur message pragma yapan bir makro tanımlamak.

#define message(ignore) 
+0

Sadece üzerinde "#pragma" yazan bir satıra sahip olmak yasal mı? Ne yazık ki bunu kullanamıyorum çünkü '' mesaj '' diğer şeyler için de kullanılıyor - açıkçası gerçekten sahip olduğum şey teknik bir meseleden ziyade organizasyonel bir problem. Ama yazık ki, bir çeşit meta-pragma değil! – Eric

+3

Pragmaların davranışı zaten uygulama tanımlı olduğundan, boş pragmanın etkisi de uygulama tanımlıdır. Teknik olarak yasaldır (6.10.6.1), ama kim bilir ne yapar! –

+2

@Eric: Not: #define message (ignore) '' message' adlı bir * function macro * tanımlayacaktır, genel bir makro değil. Yani, bir 'message()' siteye karşı bir yerine, bir '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile karşılık gelmez. Ayrıca, makronun kapsamını sınırlamak istiyorsanız, sorunlu üstbilgiyi ekledikten sonra 'undef' komutunu kullanabilirsiniz. – jamesdlin

İlgili konular