va_start로 고정의 매개변수가 없는 함수에서의 가변 매개변수를 어떻게 사용하나요?
글쓴이: Hyun / 작성시간: 화, 2006/07/04 - 11:13오후
va_start의 두번째 인자인 last가 없는 함수. 즉, int foo( ... ) 와 같이 생긴 함수는 어떻게 제작하나요???
전부다 가변인자로 받고싶은데... 가능한가요???
man va_start를 해보면 친절히 va_start를 어떻게 사용하는지 나옵니다...
EXAMPLES The function foo takes a string of format characters and prints out the argument associated with each format character based on the type. #include <stdio.h> #include <stdarg.h> void foo(char *fmt, ...) { va_list ap; int d; char c, *p, *s; va_start(ap, fmt); while (*fmt) switch(*fmt++) { case ’s’: /* string */ s = va_arg(ap, char *); printf("string %s\n", s); break; case ’d’: /* int */ d = va_arg(ap, int); printf("int %d\n", d); break; case ’c’: /* char */ /* need a cast here since va_arg only takes fully promoted types */ c = (char) va_arg(ap, int); printf("char %c\n", c); break; } va_end(ap); }
그러나... 제가 원하는 방법은 아닌 듯 싶네요... 쩝.
Forums:
인자가 몇개인지
인자가 몇개인지 어떻게 알죠?
C FAQ 질문 15.8, 15.9를
C FAQ 질문 15.8, 15.9를 참고하세요. 결론부터 말씀드리면, 가변 인자 함수는 한 개 이상의 고정 인자가 있어야 하고, 가변 인자로 전달된 인자의 갯수를 자동으로 알아낼 방법은 존재하지 않습니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
printf() 에서는 어떤식으로 처리하나요?
printf()에서는 어떤식으로 처리하나요?
printf() 함수의 소스를 찾아봐야하나...
아시는 분???
stdio.h: extern int printf (__const char *__restrict __format, ...);
인자가 하나도 없어도 상관이 없는건가요?
printf 도 인자는 최소 하나는 필요합니다.
printf의 함수 프로토타입을 보면 그렇게 나옵니다.
printf는 fmt내의 format specifier을 보고 ... 에 넘겨온 인자를 거기에 맞게 해석합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
대개 구현이 고정된
대개
구현이 고정된 인자 주위를 훓어 보는 형식으로 구현되기 때문에 뭔가하나는 고정해서 보내야합니다.
---
http://coolengineer.com
댓글 달기