簡體   English   中英

將va_list傳遞給#define,該方法僅接受變量args(…)

[英]Passing va_list to #define which only accepts variable args (…)

我有一個預處理器定義,僅接受變量args而不接受va_list。

#define DEBUG(fmt, args...)                                         \
    do {                                                            \
            debug_printk(CORE, NAME,              \
                                    __func__, fmt, ##args);         \
    } while (0)

void write(const char* fmt, ...)
{
     va_list args;
     va_start(args, fmt);
     print_debug(fmt, &args);
     va_end(args);

}

void print_debug(const char* fmt, va_list* args)
{
     DEBUG(fmt, *args);
} 

有什么辦法可以將va_list arg變量傳遞給它嗎? 我沒有能力更改此定義,並且似乎沒有VDEBUG替代方案。

我有什么選擇?

謝謝

編輯:

我猜最好的方法是使用vsnprintf獲取一個字符串,然后使用DEBUG(“%s”,buffer)將其傳遞給DEBUG;

我猜最好的方法是使用vsnprintf獲取一個字符串,然后使用DEBUG(“%s”,buffer)將其傳遞給DEBUG;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM