变参函数的参数
在c语言中,存在诸如 printf scanf 函数等可以传入参数不固定个数的函数,其实现原理为变参函数。
变参函数的基本写法示例如下:
1 |
|
这是c提供的变参函数标准写法,但是由于指针后移导致一般情况下无法获取到第一个参数。
运行结果如下:
所以派生出了A1pass大佬的新奇想法。
自己动手尝试一个变参函数
示例代码:
1 |
|
在demo中,由于argData的指默认是指针指向第一个参数的位置,所以可以获取到所有的参数。
运行结果如下:
同样,同理与数组传参,由于没有办法获取长度,所以必须需要一个定界符(本案例中是0)。
printf函数就是用第一个参数中的%个数来确定参数的总共个数