Contents

조회 수 7177 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
함수 정의시 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
번호 분류 제목 글쓴이 날짜 조회 수
921 Etc iOS 에서 쓸만한 오프라인 구글지도 찾기 hooni 2014.01.06 16038
920 Etc [doc] 웜 프레임워크 검증환경 구축(작성중..) file hooni 2013.04.23 16013
919 Etc 여기저기서 모은 VoIP(인터넷전화) 자료들~ file hooni 2013.04.23 15966
918 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 15960
917 System/OS [owasp] 10대 웹어플리케이션 보안 취약 file hooni 2013.04.23 15908
916 PPT [ppt] 웜 과제 진행사항(프레임워크 검증환경 구축) 보고 file hooni 2013.04.23 15895
915 System/OS 라우팅 경로 결정 영향 요소 ㅋㅋ file hooni 2013.04.23 15852
914 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15730
913 Etc 영어의 12 시제 (The twelve tenses of English) hooni 2013.07.12 15699
912 Develop [ios] APNS 클라이언트 구현 (pdf) file hooni 2013.06.27 15692
911 Develop [c] 윈도우 API sin 함수 출력.. file hooni 2013.04.23 15672
910 System/OS [router] 설정과 기본 명령어들 모음 hooni 2013.04.23 15670
Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 98 Next
/ 98