gpt4 book ai didi

c++ - 调用 va_start 是否需要带有可变参数的函数?

转载 作者:行者123 更新时间:2023-12-04 13:29:25 25 4
gpt4 key购买 nike

在开始使用 va_list 之前提前退出带有可变参数的函数是否安全? ?

#include <cstdarg>

int func(const char * format, ...){
if(format == NULL)
return 0; // <-- exits before acknowledging variadic parameters; is this okay?
va_list params;
va_start(params, format);

// func body

va_end(params);
return stuff;
}

最佳答案

,这是合法的。 , 函数不需要调用 va_start .来自 C99 标准:

If access to the varying arguments is desired, the called functionshall declare an object ... having type va_list.


这里要注意两点:
  • 一个 va_listva_start 的先决条件称呼。
  • 一个 va_list只需要有 如果 需要访问不同的参数。

  • 因此,还有 va_start只需要打电话 如果 需要访问不同的参数。

    关于c++ - 调用 va_start 是否需要带有可变参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66012081/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com