康小泡 发表于 2015-1-9 15:11:34

用实例告诉你怎么自己写未知变量的函数

第一个实例:
#include <stdio.h>
#include <Windows.h>
#include<tchar.h>
int sum(int number,...)
   {
      va_list argList;
      int i;
       int sum1 = 0;
       va_start(argList,number);
      for(i=0; i<number;i++)
       {
            sum1 += va_arg(argList,int);
      }
      va_end(argList);
      return sum1;
    }
int main(void)
{
int k = 0;

    k = sum(3,1,2,3);
    printf("%d\n",k);
    system("pause");
    return 0;
}
运行结果:



实例二:
#include <stdio.h>
#include <Windows.h>
#include<tchar.h>
void print (char *str1,...)
{
        va_list argList ;
        int sum = 0;
        va_start (argList,str1);

        sum = va_arg(argList,int );
        printf("%d\n",sum);
        sum = va_arg(argList,int );
        printf("%d\n",sum);
        sum = va_arg(argList,int );
        printf("%d\n",sum);
        return;
}
int main(void)
{
        int a=1,b=2,c=3;
        print("",a,b,c);
        system("pause");
        return 0;
}
运行结果:



实例三:
#include<stdio.h>
#include <stdarg.h>
#include <windows.h>
#define bufsize 80
char buffer;

int vspf(char *fmt, ...)
{
   va_list argptr;
   int cnt;
    va_start(argptr, fmt);

   cnt = vsnprintf(buffer,bufsize ,fmt, argptr);

   va_end(argptr);

    return(cnt);
}

int main(void)
{
   int inumber = 30;

   float fnumber = 90.0;

   char string = "abc";

    vspf("%d %f %s", inumber, fnumber, string);

    printf("%s\n", buffer);
    system("pause");
    return 0;
}
运行结果:


hacker.jin 发表于 2015-1-9 15:56:44

为什么要跳成黄色,,,,,和小太阳有关吗~~~

康小泡 发表于 2015-1-9 16:06:41

hacker.jin 发表于 2015-1-9 15:56
为什么要跳成黄色,,,,,和小太阳有关吗~~~

{:9_240:}因为我比较喜欢黄颜色。嘻嘻   个人癖好。

拈花小仙 发表于 2015-1-9 16:13:22

{:7_139:}可变数目参数,泡泡的C语言好厉害哦~

康小泡 发表于 2015-1-9 16:16:21

拈花小仙 发表于 2015-1-9 16:13
可变数目参数,泡泡的C语言好厉害哦~

{:5_100:}

tangbolinuxyy 发表于 2015-2-10 16:30:52

看《Programming Windows》的时候碰到过这种例子,感谢楼主分享。 {:1_1:}

mhhnjuol 发表于 2015-2-10 23:26:00

这是什么东西
页: [1]
查看完整版本: 用实例告诉你怎么自己写未知变量的函数