반응형
일반 함수 매개변수의 주소값과 가변인수함수의 주소값을 살펴보았습니다.
그 두가지의 주소값 할당은 비슷한점이 많았습니다. 그럼 아래와 같이 가변인수함수를 사용하지 않아도 가변인수의 값을 가져올 수 있지 않을까요?
#include <stdio.h>
int sum(int i, ...);
void main()
{
printf("\n%d\n", sum(3, 1, 2, 3));
}
int sum(int i, ...)
{
int sum = 0, j;
int *p = &i + 1;
for (j = 0; j<i; j++)
{
sum += *(p + j);
printf("%d\t", sum);
}
return sum;
}

가변인수함수를 사용하지 않아도 가변인수 값들을 가져왔음을 확인할수 있습니다.
하지만 컴파일러나 환경에 따라서 주소값 할당방식이 달라서 안될수도 있다는 점....
이렇게도 가능하다라는걸 알아두기만 하세요~~
반응형
'개발 > Programming language' 카테고리의 다른 글
| 설치 없이 코드 수정하고 실행하는 무료 코딩 학습 사이트, W3Schools (0) | 2026.09.18 |
|---|---|
| [C] 가변 인수 (1) : 가변 인수 함수의 주소는 어떻게 될까 (0) | 2022.10.28 |
| [C] 선언한 배열의 index 이상을 접근하면 어떻게 될까? (0) | 2022.10.27 |
| [C] Typedef 손쉽게 이해하기. (1) | 2022.10.27 |
| [C] 매크로 함수 이해하기 (0) | 2022.10.26 |