在C中转发对变量函数的调用在C中,是否可以转发变量函数的调用?就像在,int my_printf(char *fmt, ...) {
fprintf(stderr, "Calling printf with fmt %s", fmt);
return SOMEHOW_INVOKE_LIBC_PRINTF;}在这种情况下,以上述方式转发调用显然不是必要的(因为您可以其他方式记录调用,也可以使用vfprintf),但是我正在处理的代码库要求包装器执行一些实际的工作,并且没有(也不能添加)类似于vfprintf的助手函数。[最新情况:根据迄今提供的答案,似乎有些混乱。用另一种方式来表达这个问题:一般来说,你能把一些任意的变量函数包装起来吗?而不修改该函数的定义.]
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
varargsprintf/vprintf
#include <stdarg.h>int m_printf(char *fmt, ...){
int ret;
/* Declare a va_list type variable */
va_list myargs;
/* Initialise the va_list variable with the ... after fmt */
va_start(myargs, fmt);
/* Forward the '...' to vprintf */
ret = vprintf(fmt, myargs);
/* Clean up the va_list */
va_end(myargs);
return ret;}- 3 回答
- 0 关注
- 513 浏览
添加回答
举报
0/150
提交
取消
