=== 가변 인자란? === C의 io 라이브러리인 printf에 쓰이는 그것이다. 또는 MFC - CString의 CString::Format이나 CString::AppendFormat에 쓰이는 그것이기도 하다. 함수 쓸때 ...이라고 나오는 인자를 가변인자라고 한다. 이렇게 하면 인자를 여러개를 받을 수 있다. === 가변 인자 만들어서 쓰기 === {{{~cpp void Foo(LPCTSTR pFmt, ...) { int len; va_list args; TCHAR *pbuf; CString str; va_start(args, pFmt); len = _vsctprintf(pFmt, args) + 1; pbuf = new TCHAR[len]; _vstprintf(pbuf, pFmt, args); AfxMessageBox(str); SAFEDELETE(pbuf); } }}} 이렇게 하면 된다. 뭐가 뭔지는.. MSDN을 찾아보도록 하자. 몰라도 충분히 쓸 수 있다. === 유용하게 쓰이는 곳 === [인수]는 AfxMessageBox류를 띄울때 참 유용하게 쓰고 있다. 가변인자를 몰랐을때에는 {{{~cpp CString str; str.Format(_T("a : %d, b : %d, c: %d"), a, b, c); AfxMessageBox(str); }}} 이랬지만, 가변인자를 알고 난 이후에는 이렇게 쓸수 있다. {{{~cpp VAMessageBox(_T("a : %d, b : %d, c: %d"), a, b, c); // variant argument(?)의 약자같다. }}} ---- 와우 난 저런 메시지 박스 함수가 있는지 몰랐는데~ - 임인택 저런거 없다.--; 그냥 만든거야; --[인수] ---- [Java] 1.5 언어 스펙에서 가변인자 관련 문법이 추가되었다. 자바에 곧 printf 가 추가될 것이다.; --[1002] ---- [프로그래밍분류]