2016 - 2024

感恩一路有你

麦芒8参数配置 va_list定义的是什么类型?

浏览量:2886 时间:2021-03-14 15:29:14 作者:admin

va_list定义的是什么类型?

C语言参数从右到左进入堆栈。堆栈从高地址增长到低地址。因此,在堆栈空间中,参数的排列非常有序和规则。从第一个参数开始,它们根据参数的大小紧密排列。在读取可变参数时,一般来说,必须至少有一个不可变参数。取最后一个不可变参数的地址,并将其相加。参数的大小是下一个变量参数的起始地址。然后根据参数的类型添加相应的位移,依次取出这些参数。这就是变参数原理。类似list的va_uu宏实际上也做同样的事情。因此,如果您想用自定义变量参数调用vprintf,您可以自己分配一个空间,然后用要传入的变量参数填充该空间,最后将该空间的地址转换为VA,然后将列表传递给vprintf。在大多数架构中,VA_uList是一种简单的指针类型。

使用VA_u2; XXX的宏也应该正常。虽然不能保证它可以用在其他奇怪的体系结构中,但这仍然是一句话。为什么不?一般情况下,每个参数最好调用printf一次

Vaarg、vastart、vaend和valist是用C语言实现可变参数的一系列宏

麦芒8参数配置 oppoa9参数配置 nova3i参数配置

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。