2012-03-30 60 views
4

我有一個函數如下printf喜歡的行爲?

extern "C" int FuncTrace(const char *fmt, ...) 
{ 
    va_list args; 
    va_start(args, fmt); 
    return printf(fmt, args); 
} 

如果我打印一些事情上的控制檯下面,它不工作?

FuncTrace(" %s \n", __PRETTY_FUNCTION__); 

有人可以幫我糾正FuncTrace()嗎?

+0

下次請包括錯誤信息:) – 2012-03-30 15:08:38

+0

沒有錯誤。 – MacGeek 2012-03-30 15:09:14

+0

真的嗎?即使有'-Wall'? – 2012-03-30 15:09:40

回答

4

如果你想在一個va_list僞參數來傳遞您需要的vprintf功能?

2

您似乎認爲printf()接受va_list作爲其第一個參數。它不,它想要一個字符串。您需要使用vprintf()

return vprintf(fmt, args); 
2

你的意思是在你的FuncTrace功能使用vprintf而不是printf

return vprintf(fmt, args);