/*
* 此程序实验可变参数函数
* 作者:zhy 时间:2020 3 29
*/
#include <stdio.h>
#include <stdarg.h>
#include <string.h>
void Printf(const char*,...);
void Sprintf(char* str,const char*,...);
int main()
{
char buf[50];
memset(buf,0,sizeof(buf));
Printf("hello world!,39,84.0,输出了吗\n");
Sprintf(buf,"hello world!,39,84.0,输出了吗\n");
printf("buf=%s\n",buf);
}
void Printf(const char* format,...)
{
va_list vlist; //定义va_list指针
va_start(vlist,format); //根据format格式,分析参数列表。
vprintf (format,vlist); //把分析结果输出到屏幕
va_end (vlist); //释放va_list指针
}
void Sprintf(char* str,const char* format,...)
{
va_list vlist; //定义va_list指针
va_start(vlist,format); //根据format格式,分析参数列表。
vsprintf(str,format,vlist); //把分析结果输出到字符串
va_end (vlist); //释放va_list指针
}
关于可变参数的试验
该博客展示了如何使用C语言的stdarg.h库来创建可变参数的函数,包括一个模仿printf的函数Printf和一个类似sprintf的函数Sprintf。通过va_list、va_start、vprintf/vsprintf和va_end等宏,程序员可以灵活处理不同数量和类型的参数。
摘要由CSDN通过智能技术生成