在C中转发对变量函数的调用在C中,是否可以转发变量函数的调用?就像在,int my_printf(char *fmt, ...) {
fprintf(stderr, "Calling printf with fmt %s", fmt);
return SOMEHOW_INVOKE_LIBC_PRINTF;}在这种情况下,以上述方式转发调用显然不是必要的(因为您可以其他方式记录调用,也可以使用vfprintf),但是我正在处理的代码库要求包装器执行一些实际的工作,并且没有(也不能添加)类似于vfprintf的助手函数。[最新情况:根据迄今提供的答案,似乎有些混乱。用另一种方式来表达这个问题:一般来说,你能把一些任意的变量函数包装起来吗?而不修改该函数的定义.]
3 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
varargs
printf
/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 关注
- 295 浏览
添加回答
举报
0/150
提交
取消