Contents

조회 수 7200 댓글 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 16106
920 Etc [doc] 웜 프레임워크 검증환경 구축(작성중..) file hooni 2013.04.23 16062
919 Etc 티스토리 테이블 html,css 구문 hooni 2013.11.03 16059
918 Etc 여기저기서 모은 VoIP(인터넷전화) 자료들~ file hooni 2013.04.23 16037
917 System/OS [owasp] 10대 웹어플리케이션 보안 취약 file hooni 2013.04.23 16001
916 System/OS 라우팅 경로 결정 영향 요소 ㅋㅋ file hooni 2013.04.23 15948
915 PPT [ppt] 웜 과제 진행사항(프레임워크 검증환경 구축) 보고 file hooni 2013.04.23 15938
914 Develop [ios] APNS 클라이언트 구현 (pdf) file hooni 2013.06.27 15836
913 Etc 영어의 12 시제 (The twelve tenses of English) hooni 2013.07.12 15804
912 Develop OGNL(Object Graph Navigation Language) hooni 2013.04.23 15789
911 System/OS [router] 설정과 기본 명령어들 모음 hooni 2013.04.23 15757
910 System/OS [linux] 쉘스크립트 expr hooni 2014.03.11 15719
Board Pagination Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 98 Next
/ 98