我有一個編譯爲gcc和vC++的代碼。代碼有兩個場景中調用的通用宏。如何在爲gcc和vC++編寫通用代碼時克服vC++警告C4003
- 當我們傳遞一些參數給它。
- 當我們不想傳遞任何參數。
的這樣的代碼的一個例子是:
#define B(X) A1##X
int main() {
int B(123), B();
return 0;
}
的期望從編譯的預處理步驟輸出爲:
int main() {
int A1123, A1;
return 0;
}
對GCC和VC++的輸出是作爲預計,但vC++發出警告:
warning C4003: not enough actual parameters for macro 'B'
我該怎麼辦刪除此警告並獲得預期輸出?
謝謝。
感謝山姆的迴應。我不熟悉宏中的VA_ARGS,並希望在應用此解決方案之前閱讀文獻。 不幸的是,當我有其他未決任務時,我沒有多少時間處理警告。我會盡快回復您。 再次感謝。 – compbugs 2010-03-12 11:32:52
當然,祝你好運,讓我知道如果這個工程或如果你有任何進一步的問題。 – 2010-03-12 13:59:05