티스토리 뷰
함수를 사용할때, 가변인자는 고정된 값이 아닌, 변수의 양이 몇개 올지 모를 때 사용한다.
다음과 같은 코드가 있다.
void sum(int args, ...){ int i=0; int total = 0; va_list ap; _crt_va_start(ap, args); for(i=0; i<args; i++){ total += _crt_va_arg(ap, int); } printf("%d\n", total); _crt_va_end(ap); } int main(){ sum(3, 1,2,3); return 0; }
main()함수에서는 크기와 값들을 보내게 된다. sum()함수는 va_list ap 를 사용해서 가변인자값을 저장하고, va_start를 활용해서 시작을 알린다. va_arg로 값을 받고, va_end로 끝을 알리게 된다.
이때, va_start와 va_arg, va_end는 함수처럼 보이지만, 실제로는 컴파일 전에 생성되는 매크로이다.
가변인자의 활용말고도 배열을 사용하면 같은 결과를 가져올 수 있다. 배열을 이용하게 되면, 배열 값을 함수에 통째로 넘기게 되고, 그 값을 바로 활용할 수 있다.
'Language > C' 카테고리의 다른 글
[C언어] 매크로 (0) | 2013.10.02 |
---|---|
[C언어] #include < >와 #include " " (0) | 2013.10.02 |
[C언어] 함수 포인터 배열 (0) | 2013.10.02 |
[C언어] 함수 포인터 (0) | 2013.10.02 |
[C언어] 포인터와 const (0) | 2013.10.01 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday