Develop
2013.04.23 15:47
[c] 가변인자 함수(printf와 같은..)
조회 수 8415 댓글 0
함수 정의시 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;
}
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|---|
| » | Develop | [c] 가변인자 함수(printf와 같은..) | hooni | 2013.04.23 | 8415 |
| 636 | System/OS | [linux] 한글 URL 인식할 수 있게 아파치(Apache) 설정 (mod_url.c 설치) | hooni | 2013.04.23 | 14031 |
| 635 | Develop |
[c] openssl 샘플코드.. 어려움 ㅠㅠ
|
hooni | 2013.04.23 | 7815 |
| 634 | Develop |
[c] 바로 보고 정리할 것.. ㅋㄷㅋㄷ
|
hooni | 2013.04.23 | 8095 |
| 633 | Develop |
[c] UTF-8을 EUC-KR로 변환.. (iconv)
|
hooni | 2013.04.23 | 21331 |
| 632 | Develop |
[c] 도메인(호스트)으로 IP정보 알아오기.. (nslookup과 비슷)
|
hooni | 2013.04.23 | 8594 |
| 631 | Develop |
[c] 파이프(popen)로 다른 프로세스 실행결과 가져오기
|
hooni | 2013.04.23 | 9721 |
| 630 | Develop |
[c++] Win32 API 기본 출력인 MessageBox() 함수 사용 예제..
|
hooni | 2013.04.23 | 13571 |
| 629 | Develop | [c++] mfc에서 윈도우 항상 위 속성 주기.. | hooni | 2013.04.23 | 12504 |
| 628 | Develop | [c] 쓰레드에 대한 내용 퍼오기..ㅡㅡ; | hooni | 2013.04.23 | 9708 |
| 627 | Develop |
[c++] 채팅로봇 소스.. ㅋㄷㅋㄷ
|
hooni | 2013.04.23 | 9870 |
| 626 | PPT |
[doc] 인공지능 관련 자료(채팅로봇도 포함..)
|
hooni | 2013.04.23 | 19806 |