gpt4 book ai didi

c - 使用带有 va_arg 的自定义类型

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

mystruct_t v = va_arg(a_list, mystruct_t);

就 C 规范而言,这可以吗(使用大于等于 int 大小的自定义数据类型)?

最佳答案

C 标准中没有关于将结构类型用作可变参数的限制。所以你想做的事是允许的。

唯一不允许作为可变参数的参数类型是那些会进行提升的参数类型,即小于 int 的整数类型(signed 或 unsigned char short 或等效项)以及 float

作为引用,C standard 的第 7.16.1.1p2 节关于 va_arg 状态:

The parameter type shall be a type name specified such that the typeof a pointer to an object that has the specified type can be obtainedsimply by postfixing a * to type. If there is no actual nextargument, or if type is not compatible with the type of the actualnext argument (as promoted according to the default argumentpromotions), the behavior is undefined

关于c - 使用带有 va_arg 的自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74857961/

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