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语言奇淫技巧之函数的可变参数的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript奇淫技巧:反调试

ASP.NET Core 奇淫技巧之伪属性注入

CSS布局奇淫技巧之--各种居中

CSS布局奇淫技巧之--各种居中

CSS布局奇淫技巧之-多列等高

CSS布局奇淫技巧之-多列等高