MSVC是否有类似于“内置”的软件包?

MSVC是否有类似于“内置”的软件包?,c,visual-c++,gcc,C,Visual C++,Gcc,此内置函数表示内联函数的所有匿名参数 功能。它只能在内联函数中使用,而内联函数将始终 内联的,从不作为单独的函数编译,例如使用 属性(总是内联的)或属性(gnu内联的)外部内联函数。它只能作为 具有可变参数的其他函数的最后一个参数。这是 用于为变量参数编写小型包装器内联线 函数,但不希望使用预处理器宏。例如: extern int myprintf (FILE *f, const char *format, ...); extern inline __attribute_

此内置函数表示内联函数的所有匿名参数 功能。它只能在内联函数中使用,而内联函数将始终 内联的,从不作为单独的函数编译,例如使用 属性(总是内联的)或属性(gnu内联的)外部内联函数。它只能作为 具有可变参数的其他函数的最后一个参数。这是 用于为变量参数编写小型包装器内联线 函数,但不希望使用预处理器宏。例如:

      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;
      }
extern int myprintf(文件*f,常量字符*格式,…);
外部内联属性(外联内联)
myprintf(文件*f,常量字符*格式,…)
{
int r=fprintf(f,“myprintf:”);
if(r<0)
返回r;
ints=fprintf(f,格式,内置变量包());
如果(s<0)
返回s;
返回r+s;
}

据我所知没有。但是这里不需要使用gcc扩展,而是使用vfprintf:

  int myprintf (FILE *f, const char *format, ...)
  {
    va_list ap;
    va_start(ap, format);
    int r = fprintf (f, "myprintf: ");
    if (r < 0)
      return r;
    int s = vfprintf (f, format, ap);
    va_end(ap);
    if (s < 0)
      return s;
    return r + s;
  }
int-myprintf(文件*f,常量字符*格式,…)
{
va_列表ap;
va_开始(ap,格式);
int r=fprintf(f,“myprintf:”);
if(r<0)
返回r;
ints=vfprintf(f,格式,ap);
va_端(ap);
如果(s<0)
返回s;
返回r+s;
}

很抱歉,这不是我想要的。我知道如何将变量参数从采用
va_list
的函数传递到
..
函数,但是我需要将参数从一个变量函数传递到另一个变量函数…如果您需要(v)printf以外的函数,其中只有变量arg函数存在,但是没有替代函数使用va_列表,使用MSVC编译器就不走运了。