...로 받은 인자들을 다 전달해주려면 어떻게 하나요?
조회수 2082회
발생하는 문제 및 실행환경
...를 써서 인자를 여러개 받는 함수에서 자기가 받은 인자를 다른 함수에 똑같이 넘겨주려면 어떻게 해야되는지 아시는분 있으면 가르쳐주세요
소스코드
void format_string(char *msg, ...);
void debug_print(int dbg_lvl, char * msg, ...) {
format_string(msg, ...);/* ...에서 받은 인자를 다 넘겨주려면..? */
fprintf(stdout, msg);
}
1 답변
-
C에서
format_string(char *msg, ...)
이런식으로 가변인자만 있는 함수는 쓸 수가 없습니다.
'...' 파라메터가 나오기전에 이 가변인자들이 몇개인지 알려줘야하는 파라메터가 먼저 있어야 하기 때문입니다.
호출은 함수안에 msg만 넣어주면 되지만 이 함수는 가변인자가 몇개인지 알 수 있는 방법이 없으므로 format_string안에 인자가 몇개인지 알려주는 파라메터를 넣어줘야 합니다.
void format_string(int argc, char *msg, ...) 형태로 수정한 다음 format_string(strcnt(msg), msg);
로 호출하면 됩니다.
이해가 잘 안가신다면 main함수의 인자가 왜 int argc, char** argv 인지 찾아보시면 도움이 될 겁니다
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력