Contents

Views 7197 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
함수 정의시 printf처럼 변수의 갯수가 일정하지 않을 때 사용하는 방법인 가변인자 함수 정의 방법을 알아본다.

간단하게 가변인자 만드는 샘플 몇개 소개!

1. 초간단 가변인자 함수 
#include <stdarg.h>

int sum(int nargs, ...)
{
    va_list argptr;
    int i, total = 0;

    va_start(argptr, nargs);
    for (i = 0; i < nargs; i++)
        total += va_arg(argptr, int);
    va_end(argptr);

    return total;
}

2. 초간단 변형된 printf 함수 
int my_printf(const char *fmt, ...)
{
    va_list argptr;
    int ret;

    va_start(argptr, fmt);
    ret = vprintf(fmt, argptr);
    va_end(argptr);

    return ret;
}

3. 향상된 Error 처리 함수
void error(int status, int ecode, const char *fmt, ...)
{
    va_list argptr; 
    fflush(stdout);
    fprintf(stderr, "error: ");
    if (ecode)
        fprintf(stderr, "%s: ", strerror(ecode));

    va_start(argptr, fmt);
    vfprintf(stderr, fmt, argptr);
    va_end(argptr);

    fputc('\n', stderr);

    fflush(stderr);    /* redundant */

    if (status)
        exit(status);
}

이건.. 예제..
#include <stdio.h>
#include <stdarg.h>

int add(int count, ...){
    va_list list;
    int sum = 0;
    int i;

    va_start(list, count);

    for(i=0; i<count; i++)
        sum += va_arg(list, int);

    va_end(list);

    return sum;
}

int main(){
    int sum;

    sum = add(2, 284, 945);
    printf("%d\n", sum);

    sum = add(5, 456, 74, 24, 826, 34);
    printf("%d\n", sum);

    return 0;
}


?

List of Articles
No. Category Subject Author Date Views
397 Develop [c++] 현승이가 준 P2P 프로그램 소스 ㅋㅋ file hooni 2013.04.23 12100
396 Develop [php] 심플한 게시판 ㅋㅋ 1 file hooni 2013.04.23 13037
395 Develop [jsp] RSS(xml) 파싱해서 보여주기 ㅎㅎ file hooni 2013.04.23 13238
394 Develop [php] 한샘 전자발주 시스템.. file hooni 2013.04.23 12021
393 Develop [c#] 파일(File) 쓰기 ㅎㅎ hooni 2013.04.23 13317
392 Develop [js] 자바스크립트를 동적으로 로딩하기 hooni 2013.04.23 13606
391 Develop [unix] 날짜 관련 쉘 명령어 (특정일 또는 +-시간, 날짜 계산된 값) hooni 2013.04.23 14884
390 Develop [vb] 문자열에서 태그 제거함수 (Visual Basic) file hooni 2013.04.23 22675
389 Develop [c#] 정규표현식을 이용한 문자열에서 태그 제거함수 file hooni 2013.04.23 17876
388 Develop [c] 포인터 학습용 예제 소스 코드 file hooni 2013.04.23 21081
387 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15777
386 Develop URI 인코딩, URL 인코딩 file hooni 2013.04.23 18901
Board Pagination Prev 1 ... 33 34 35 36 37 38 39 40 41 42 ... 71 Next
/ 71