3
我試圖讓泛型函數顯示錯誤消息,並顯示消息後程序可能退出。函數中的C++宏和默認參數
我希望函數能夠顯示發生錯誤的源文件和行。
參數列表:
1.char *desc //description of the error
2.char *file_name //source file from which the function has been called
3.u_int line //line at which the function has been called
4.bool bexit=false //true if the program should exit after displaying the error
5.int code=0 //exit code
由於(4)和(5)我需要使用默認參數的函數定義,因爲我不希望他們被指定,除非程序應該退出做。
由於(2)和(3)我需要使用一個重定向到原始功能宏,像這樣的:
#define Error(desc, ???) _Error(desc,__FILE,__LINE__, ???)
的問題是,我沒有看到如何將這些2種元素應該一起工作。
的應該什麼樣子例:
if(!RegisterClassEx(&wndcls))
Error("Failed to register class",true,1); //displays the error and exits with exit code 1
if(!p)
Error("Invalid pointer"); //displays the error and continues
http://stackoverflow.com/questions/679979/how-to-make-a-variadic-macro-variable-number-of-arguments(也許http://stackoverflow.com/questions/10582500/c -macro-and-default-arguments-in-function) – Vlad
在__VA_ARGS__工作之前添加了'##'的確如此,我之前嘗試使用可變宏,但沒有##它沒有工作,謝謝 –
歡迎: - ) – Vlad