0
我想定義諸如宏 -如何檢查可變參數__VA_ARGS__有效性?
#define log(lognumber,...) logreport(lognumber,__VA_ARGS__)
我想檢查異常情況下__VA_ARGS__
這些參數用戶當用戶呼叫日誌可以通過()。請提供給我的異常情況進行__VA_ARGS__
。
[更新自評:]
我的意思是,我想以這樣的方式,它應該打印特定數量的,我已經定義的錯誤logreport寫。
以一個例子一樣,如果我傳遞
log(NOTE,"%s",str)
然後在它打印,我在這樣msgid %s, msdstr %s (10223)
另一個文件分配了特定ID的情況下,但用戶使用
log(NOTE,"DIRECT STRING")
它確實需要[???]作爲該字符串。所以,我怎麼會檢查,如果用戶傳遞一個參數這樣
log(NOTE,"%s",str)
或
log(NOTE,"direct string")
這種方式logreport功能?
你說的「異常情況」是什麼意思?你究竟想要達到什麼目標? – cnicutar
只寫代碼的logreport功能使用標準的'va_start','va_arg'和'va_end'宏對變量ARGS操作做檢查。至少這是我認爲你所要求的答案。但是你的問題並不十分清楚:「__VA_ARGS__'的例外情況」在沒有解釋這意味着什麼的情況下不是一個有意義的術語。 – kaylum
如果我讀這正確的(我不知道我這樣做),你可能有興趣在http://stackoverflow.com/questions/2124339/c-preprocessor-va-args-number-of-arguments – Wintermute