2013-04-25 1 views
2

내가이 비슷한 기능을 만들려고 노력 해요 :__VA_ARGS__ 개의 런타임은 무엇입니까?

#define printf_copy(s, ...) printf(s, ##__VA_ARGS__) // acceptable! 

을하지만 그 프리 프로세서, 난이 같은 런타임 하나가 필요

+ (NSString *)format:(NSString *)first, ... 
{ 
    return [NSString stringWithFormat:first, __VA_ARGS__]; // unacceptable! 
} 

하지만! 이것은 컴파일러가 받아 들일 수없는 것이다!

(...)에 대한 지역 변수가 무엇인지 알아 내려고하고 있습니까? (예 그 3 도트)

+0

아래 @Carl이 대답하지 않은 내용을 찾을 수 없습니다. 그의 대답을 받아들이거나 강조 표시하려면주의를 기울여야합니까? – Mathew

답변

9

정확하게 C 가변 함수와 동일합니다. 즉, 직접 전달할 수는 없으며 va_list을 전달해야합니다.

+0

답변을 주셔서 감사합니다. 질문을 업데이트했습니다. –

+0

잘 모르겠습니다 -이 답변에 문제가 있습니까? –

+0

괜찮습니다. 투표 + –

관련 문제