将argslist“ ...”从c ++转发到c函数

aah134

将参数列表从C ++类成员函数转发到ac函数(我正在创建的包装器)

不确定是否正确?看看argsPrinter里面的评论

// c++ a class function

void argsPrinter( const char *format , ... ){
   //markFile(&mApiObj, format , ...); how to pass forward the ... to the c function

/*
va_list args;
va_start (args, format);
markFile(&mApiObj, format , args);
va_end(args);
*/
}

// c function

void markFile(someCustomApi* a, const char *format , ...)
{
   FILE *file= fopen(a->somePath, "a");
   if(file)
   {
     va_list args;
     va_start (args, format);
     vfprintf(file, format, args);
     va_end (args);
     fclose(file);
   }
//else do nothing
}

编辑更改的实现,但是,如果不允许转发...,我可以考虑实现附加功能。

作为 markFile(&mApiObj, format , ...);

塞巴斯蒂安·雷德尔(Sebastian Redl)

你不能 如果包含的库markFile未提供markFileV(类似于vsprintf的对应库sprintf),则根本不可能做到这一点。

既然您拥有C函数的源代码,则可以更改它。

顺便提一下(如果您对C代码有影响),这可能是简化的示例,但是为什么要markFile首先将其格式化为缓冲区(PATH_MAX所有字符都是char长!这与什么有什么关系)? ),然后使用fprintf结果写出来?为什么不直接使用vfprintf

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档