C语言奇淫技巧之函数的可变参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言奇淫技巧之函数的可变参数相关的知识,希望对你有一定的参考价值。
参考技术A前言:
有时候我们需要一个函数接口可以支持可变参数以提高其泛化能力,比如说定义一个求和函数,对传入的所有参数进行求和并返回,C语言提供了一种可变参数的方式来帮助我们实现。
原理:
函数参数是从右向左线性连续依次入栈,如果我们可以知道可变参数列表的前一个参数的地址和类型,就可以得知可变参数列表的首地址,进而根据每个参数的类型取出相应的数据。简单来说就是将栈里面的数据,按照指定类型的大小,依次取出。
具体实现:
步骤解析:
c语言可变参数是干啥的
变参是做什么用途的呢?
参考技术A 可变参数是用于调用函数时,不知道参数的个数及类型的一种场合,最经典最常用的是int
printf(const
char
*format[,
argument,
...]);
它后面的参数类型及数量都是可变的
如
printf("%d",x);
//一个int参数
printf("%d%d%s\n",x,y,z);
//三个参数,前两个为int,后面的为char
*
以上是关于C语言奇淫技巧之函数的可变参数的主要内容,如果未能解决你的问题,请参考以下文章