c++ - 如何检索整个 va_list 输入

标签 c++ c visual-c++

我熟悉 va_arg 列表。我想知道有没有一种方法可以获取逗号后的值

例如

abc("%d %d %d how are you",1,2,3);

我想知道是否可以将整个调用传递给字符串而无需任何处理

string [1]="%d %d %d how are you",1,2,3;

我不想做任何类型的处理,我只想读取整个调用并将其存储在数组字符串中。

最佳答案

据我所知,您的要求在标准 C++03 中是不可能的。最密切相关的 C++ 功能是预处理器宏参数字符串化,它允许这样的事情:

#define ABC(X) do { remember_string_version(#X); abc X; } while (false)

ABC(("%d %d %d how are you",1,2,3));

请注意双括号 - 它们将字符串和数字组合在一起,因此它们与 ABC 期望的单个参数“X”匹配。

预处理器字符串化是唯一的工具,可以让您将一些源代码片段保留为字符串,同时仍将其用作源代码....

关于c++ - 如何检索整个 va_list 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070083/

相关文章:

c++ - 为无异常数组寻找一个好的解决方案

c - 如何确保 malloc/free fopen/fclose 匹配?

visual-c++ - 如何使用符号在 Release模式下构建 OpenSSL?

c++ - #pragma warning(push) 没有 #pragma warning(pop)

visual-c++ - VC++中如何检查编辑框是否为空

c++ - 如何在没有信号的情况下监控子进程?

c++ - 使用 Horner 规则递归评估 sinx

c++ - 创建一个不可复制的类并继承到我的类中

c - 调试时,单线程应用程序会在内核之间跳转吗?

c - C中typedef结构中的函数指针