2012-04-26 33 views
2

我們使用#warning顯示編譯消息,如:可以重新定義#warning嗎?

#warning Are you sure it is correct? 

是否是可能重新定義#warning並可以選擇是否啓用或禁用它,就像這樣:

#ifdef ACTIVE_MY_WARNING 
#define #my_warning #warning 
#else 
#define #my_warning 
#endif 

我們可以做到這一點的C還是不?

回答

2

不,不可能重新定義預處理關鍵字(#if#define,#ifdef等)。

你最好的拍攝是有一個分析器,可以將其替換代碼:

#ifdef ACTIVE_MY_WARNING 
#warning Are you sure it is correct? 
#endif 
+1

如果找的這個確切的證據證明,人們可能會認爲舉*「ISO/IEC 9899:TC3 6.10/1指定了預處理指令的語法,明確指出宏名稱與標識符共享完全相同的規則。6.4.2.1/1指定了標識符的規則。「*因此,不包含'#'。 http://stackoverflow.com/questions/369495/what-are-the-valid-characters-for-macro-names – HostileFork 2012-04-26 14:16:25

+0

好吧,我認爲。 – Rodrigo 2012-04-26 14:20:36

0

在C 標記,並按照我所知在C中沒有 預處理現場指令#warning。 「?我們可以做到這一點在C或不是」

我對你的問題的答案 是第

相關問題