Eng*_*999 3 c printf wrapper c-preprocessor preprocessor-directive
我正在尝试将 C 代码从一个平台移植到另一个平台并删除依赖项。
有一个名为的调试函数dbg_out,它打印出类似printf().
原型是void dbg_out(int dbgMask, const char *pFormat, ...);
这是一个调用示例:dbg_out((5, "SerialDriver : (%04x-%08lx) \n", id, sn));
我想将此函数映射到正常printf()调用,但遇到一些问题。
到目前为止我已经尝试过了
void dbg_out (int dbgMask, const char *pFormat, ...)
__attribute__((format(printf, 2, 3)))
;
Run Code Online (Sandbox Code Playgroud)
我需要忽略第一个参数 dbgMask 并只考虑其他参数。
我更喜欢使用预处理器来定义包装器。我希望得到一些帮助。
您需要使用 usevprintf来代替,以便能够使用未知参数
inline void dbg_out (int dbgMask, const char *pFormat, ...) {
va_list ptr;
va_start(ptr, pFormat);
vprintf(pFormat, ptr);
va_end(ptr);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |