가변인수 2

가변인수 활용하기

가변인수는 ...으로 표시하고 이를 받기 위해서는 따로 매크로 va_ 로 시작되는 매크로들을 사용해야 한다. 이를 이용하면 따로 입맛에 맛는 함수를 만들 수 있다. 가령 에디트 콘트롤에 문자열을 입력하고자 할때 보통 char szText[256]; wsprintfA(szText, "%d, %s\r\n", 정수, 문자열); SetWindowTextA(hEdit, szText); 이렇게 3줄이나 걸리는데,,,, 가변 인수를 직접 사용자 정의 함수에서 조작하면 PrintOnEdit(HWND hWnd, char *lpFmt, ...) 식으로 한 줄로 깔끔하게 처리할 수 있게 된다. 활용도가 좋다. 아래는 로그 에디트에 출력하는 예. int LogText(LPCSTR lpFmt, ...) // stdcall로 선..

C, C++ 문법 2012.03.06

가변인수 다루기

가변인수, va_start, va_list, va_end 1 가.가변 인수 함수 여기서는 가변 인수 함수에 대해서 알아 본다. 가변 인수의 함수를 만드는 방법에 대해서는 물론이고 가변 인수 함수가 동작하는 원리에 대해서도 자세하게 분석해 볼 것이다. 조금 어렵기는 하지만 포인터를 적절하게 활용하는 예를 볼 수 있으며 포인터로 어떤 일이 가능한지를 경험할 수 있는 좋은 기회가 될 것이다. 가변 인수 함수가 어떻게 동작하는지를 설명할 수 있다면 포인터를 정복했다고 생각해도 좋다. 가변 인수란 말 뜻 그대로 인수의 개수와 타입이 미리 정해져 있지 않다는 뜻이며 그런 인수를 사용하는 함수를 가변 인수 함수라고 한다. 가변 인수 함수의 가장 좋은 예는 C언어의 가장 기초 함수인 printf이다. C언어를 배우는 ..

C, C++ 문법 2009.10.22