gpt4 book ai didi

c - 如何使用 va_start()?

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

在带有可变参数的函数中,我们使用函数 va_start() 初始化一个 va_list 类型的对象,'ap' 为:

void va_start(va_list ap, parmN);

我不明白
1.什么类型的对象可以作为parMN(最后一个已知参数)传递。我已经完成了传递整数、带有格式说明符的字符串、结构等的示例。

2. parMN 如何描述以下可选参数。

最佳答案

C 标准说 va_start() 实际上是一个宏,而不是一个函数,所以它可以做函数不能做的事情。细节高度依赖于实现,但您可以想象它需要 parmN 的地址来确定下一个参数的堆栈地址。不需要 va_start()了解以下参数的类型,因为这些信息会传递给 va_arg() ,这是另一个宏。

关于c - 如何使用 va_start()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57036703/

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