```c
#include
#include
#include
#include
char *my(char *format, ...)
{
va_list list;
//1. 先获取格式化后字符串的长度
va_start(list, format);
int size = vsnprintf(NULL, 0, format, list);
va_end(list);
if(size <= 0) {
return NULL;
}
size++;
//2. 复位va_list,将格式化字符串写入到buf
va_start(list, format);
char *buf = (char *)malloc(size);
vsnprintf(buf, size, format, list);
va_end(list);
return buf;
}
/*************************************************************
* 函数名:Hpush
* @param1:字符串,数据将会直接按字节放入FPGA下位机中的队列
* 返回值:操作成功返回 0
* 将数据压入FPGA制作的FIFO中,准备使用FPGA硬件的串口发送数据
*************************************************************/
int Hpush(char *p){
int len = strlen(p);
int i = 0;
char c ;
for(i = 0;i< len;i++){
printf("%c",*(p+i));
}
}
void Hpushf(char *format, ...)
{
va_list list;
//1. 先获取格式化后字符串的长度
va_start(list, format);
int size = vsnprintf(NULL, 0, format, list);
va_end(list);
if(size <= 0) {
return ;
}
size++;
//2. 复位va_list,将格式化字符串写入到buf
va_start(list, format);
char *buf = (char *)malloc(size);
vsnprintf(buf, size, format, list);
va_end(list);
Hpush(buf);
}
char *p="yhp,hello";
int main(){
//Hpush(p);
Hpushf("%s\n",p);
return 0;
}
```
```c
#include
#include
double average(int num,...)
{
va_list valist;
double sum = 0.0;
int i;
/* 为 num 个参数初始化 valist */
va_start(valist, num);
/* 访问所有赋给 valist 的参数 */
for (i = 0; i < num; i++)
{
sum += va_arg(valist, int);
}
/* 清理为 valist 保留的内存 */
va_end(valist);
return sum/num;
}
int main()
{
printf("Average of 2, 3, 4, 5 = %f\n", average(4, 2,3,4,5));
printf("Average of 5, 10, 15 = %f\n", average(3, 5,10,15));
}
```