代码之家  ›  专栏  ›  技术社区  ›  rambo

VAU列表必须是函数声明中的最后一个参数吗?

c
  •  3
  • rambo  · 技术社区  · 5 年前

    看似简单的问题,却一直找不到答案,所以还是在C标准上。问题是 va_list VAU列表

    例如,这个安全吗?

    int f(int a, char *b, va_list args, char *c);
    

    int f(int a, char *b, char *c, va_list args);
    
    1 回复  |  直到 5 年前
        1
  •  5
  •   Eric Postpischil    5 年前

    这辆车没什么特别的 va_list

    实际的变量函数必须至少有一个命名参数和 ... va_start va_end 设置

    C standard 描述 VAU列表

    声明的类型为

    va_list
    

    这是一个完整的对象类型适合举行 宏所需的信息 , va_arg , 和 va_copy 被调用函数应该声明一个对象(通常 称为 ap VAU列表 美联社 可以作为参数传递给另一个 瓦乌阿格 宏 参数 美联社 在调用函数中 不确定,应传递给 之前的宏 美联社 253)


    1. 允许创建指向 VAU列表 和 将指针传递给另一个函数,在这种情况下 原始函数可以在

    正如这里所描述的 或者指向 VAU列表 可以传递给函数,但没有提到将其限制为最后一个参数。