Keil实现不定参数函数

 时间:2024-09-21 02:49:05

学过C语言的应该都不会忘记像printf、sc瞢铍库祢anf等标准库函数和我们常用的函数有个很大的区别:支持绺从萦米可变数量的参数。而我们平常使用的函数都需要给定固定的参数值。那么怎么实现这种可变参数数量的函数呢?下面分享下Keil对于这种函数的实现操作,希望对需要的朋友有帮助。

工具/原料

Keil5

方法/步骤

1、涉及到可变数量参数的函数,就少不了va_list、va_start、va_end、va_arg这四个宏,他们都定义在stdarg.h这个头文件,需要将其包含到程序当中。

Keil实现不定参数函数

2、我们可以通过在stdarg.h上右击选择“Opendocument<stdarg.h>”打开该头文件,可以在其中看到va_list、va_start、va_end、va_arg四个宏定义的具体实现。

Keil实现不定参数函数

Keil实现不定参数函数

3、可变数量参数函数定义形式为:typefunctionName(隋茚粟胫typeargName,...){}即一般至少第一个参数类型是已知的,罨傺烙窑后面的参数可以使用三个点好代替(注意是英文编码)。在函数体中需要定义一个va_list的变量,相当于可变参数的列表,使用va_start将函数参数加载到va_list列表当中。形式为va_start(va_list变量,函数参数),这样在后面即可以使用va_arg(va_list变量,变量类型)获取当前变量的值,并且每调用一次va_arg后变量指针就会后移一次。操作完成后应使用va_end(va_list变量)结束,否则在某些场合会导致内存泄漏。图中是使用可变参数数量函数定义的求和函数。

Keil实现不定参数函数

4、函数定义完毕后,可以使用:get_sum(求和参数个数,参数1,参数2,参数3,……);的形式调用,其中省略号代表其他参数,实际使用不能有省略号。比如get_sum(2,1,2);就是求1和2的和,由于有两个数参与求和,所以第一个参数为2.

Keil实现不定参数函数

5、我们可以通过软件仿真看看结果,可以看到对于get_sum(5,1,2,3,4,5);它的计算结果为0xF即15,这与1+2+3+4+5是一致的。

Keil实现不定参数函数

如何在AD中放置双排5针排针插座? visio文字怎么设置为55的透明度 用Protel 99 SE绘制原理图前做什么准备? Matlab2016b安装教程 MATLAB中怎么把矩阵写入txt文档中去啊
热门搜索
柠檬图片 迎春花图片 喝酒图片 木瓜树图片 十二星座的图片