ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 가변인자 (va_list, ...)
    Dev Language/C 2008. 10. 27. 10:47
    va_list ap;
    va_start (ap, temp);
    va_arg(ap, type);
    va_end(temp);

    참고 url : http://www.winapi.co.kr/clec/cpp2/15-3-1.htm

    #include <stdio.h>
    #include <stdarg.h> // for va_list, va_start, ...

    void print(char *fmt, ...) {
    int i;
    va_list ap;
    va_start(ap, fmt);

    for (i=0; fmt[i[; i++) {
    if (fmt[i] != '%') putchar(fmt[i]);
    else switch(fmt[++i]) {
    case 'c' : printf("%c", va_arg(ap,char)); break;
    case 'd' : printf("%d", va_arg(ap,int)); break;
    case 's' : printf("%s", va_arg(ap,char*)); break;
    defalut : puts("error");
    } // end switch
    } // end for
    }

    int main() {
    char c= 'A'; char *str = "ABC"; int a=10,b=20;
    print("%d + %d  = %d\n", a,b,a+b);
    printf("%s= ABC\n",str);
    printf("%c%c%c\n",c,c,c);
    }
    출처 : 열혈강의 C포인터 등

    댓글

Written by Skymaker.