当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

c语言如何封装一个带有可变参数的方法

更新:12-30 整理:39baobao.com
字体:

[c语言中的可变参数]这个问题可以这样考虑: 你在write_log()函数里调用了vfprintf()函数,其实这个vfprintf()就是一个可以接受你从上层函数传下来的可变参数串的函数。 你现在要在 log_info() 函数下...+阅读

需要借用C语言的VA_LIST 宏定义,及相关操作来实现可变参数。

VA_LIST 所在头文件:#include

(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针;

(2)然后用VA_START宏初始化刚定义的VA_LIST变量;

(3)然后用VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型(如果函数有多个可变参数的,依次调用VA_ARG获取各个参数);

(4)最后用VA_END宏结束可变参数的获取。

以下是一个自定义打印接口的实现:

int my_printf(const char *fmt, ...)//...表示参数可变

{

va_list args;//定义va_list

static char gc_PrintfOutBuff[1000];

va_start(args, fmt);//初始化

vsnprintf((char *) gc_PrintfOutBuff, 1000, (char *) fmt, args);//这里没有使用VA_ARG取回单个变量,而是借用vsnprinf一次性读取。

va_end(args);//结束获取

puts("%s",(const char *)gc_PrintfOutBuff);//使用。

return 0;

}

本文地址:https://www.39baobao.com/show/29_18208.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言中如何实现可变参函数C语言中可变参函数实现,主要通过VA_LIST宏及相关操作的几个宏。 一、涉及宏及说明: 所有相关宏均定义在stdarg.h中。 1、va_list: 可变参数列表指针。 2、va_start:获取可变参数...

C语言可变参数列表#include <stdio.h> #include <stdarg.h> float max_list(int number...); void main() { float a = 3,b = 4,c = 5,d = 6; printf("max = %.2lf\n\n",max_list(4,a,b,c,d));...

c语言怎么写可变参数函数#include <stdarg.h&gt; //可变参数函数必要的头文件 #include <stdio.h> long int sum(unsigned int argc,...) //可变参数函数必须包含至少一个确定的参数 { long int srt=0...