1
Visual C++有类似于__builtin_va_arg_pack
的东西吗?MSVC是否有类似__builtin_va_arg_pack的东西?
此内置函数表示内联函数的所有匿名参数。它可用于仅在内联函数,这将是始终 内联,从未编译为一个单独的函数,例如使用 属性((always_inline))或属性((gnu_inline))外部内联的那些功能。它只能作为 传递给其他带有可变参数的函数的最后一个参数。这是 用于写可变参数 函数的小封装内联函数时,使用预处理器宏时不可取。例如:
extern int myprintf (FILE *f, const char *format, ...); extern inline __attribute__ ((__gnu_inline__)) int myprintf (FILE *f, const char *format, ...) { int r = fprintf (f, "myprintf: "); if (r < 0) return r; int s = fprintf (f, format, __builtin_va_arg_pack()); if (s < 0) return s; return r + s; }
对不起,但这不是我要求的。我知道如何传递可变参数从一个函数采用'va_list'到'...'函数,但是我需要从一个可变参数传递参数到另一个可变参数函数... – szx
如果你需要这个东西除了(v)printf,其中只有变量arg函数存在,但没有采用va_list的替代函数,对于MSVC编译器而言,您并不幸运。 – nos