c语言创建支持多参数多类型的函数

来源:互联网 发布:fp6601q数据手册 编辑:程序博客网 时间:2024/05/21 09:37

#include <stdio.h>

#include <stdarg.h>


double test(char str[], ...)

{

    va_list flag;

    double i=0.0;

    va_start(flag, str);

    while (*str) {

        if (*str=='%') {

            switch(*(++str))

            {

                case 'd':

                    i+=va_arg(flag, int);

                    break;

                case 'f':

                    i+=va_arg(flag, double);

                    break;

            }

        }

        str++;

    }

    va_end(flag);

    return i;

}


int main()

{

    printf("%f\n",test("%f",1.1));

    printf("%f\n",test("%f %f",1.1,2.2));

    printf("%f\n",test("%f %d %f",1.1,2,2.2));

}

原创粉丝点击