Language/CㅣC++

[C/C++] main은 알겠는데.. wmain, _tmain 는 무엇일까요?

Main 이란?



int main(int argc, char* argv[]) 

-세번째 입력 인수가 있긴하지만 잘안쓰죠

main은 무엇일까요? 다들 아시다시피 main 이라는 특수함수는 모든 c및 c++ 프로그램이 실행이 시작되는 지점입니다. 


int wmain(int argc, wchar_t* argv[])

그럼 wmain은 무엇일까요? msdn에 따르면 "유니코드 프로그래밍모델을 따르는 코드를 작성하는경우 main 의 와이드 문자버전인 wmain을 사용할 수 있습니다" 라고 합니다.


int _tmain(int argc, _TCHAR *argv[]) 

_tmain은 _UNICODE가 정의되지 않은 한 main으로 확인됩니다. _UNICODE가 정의된 경우에는 _tmain이 wmain으로 확인됩니다.  유니코드가 정의된경우 컴파일시 wmain으로, 정의되지 않은경우 main으로 컴파일됩니다.

단, _tmain 사용을위해서 TCHAR.h 헤더파일을 선언해주어야합니다 


int 형대신 void형으로 선언하는 경우도 있던데?

main 및 wmain 함수가 void(반환 값 없음)를 반환하는 것으로 선언될 수 있습니다. void를 반환하는 것으로 main 또는 wmain을 선언하는 경우 return 문을 사용하여 부모 프로세스나 운영 체제에 종료 코드를 반환할 수 없습니다. main 또는 wmain이 void를 반환하는 것으로 선언된 경우 종료 코드를 반환하려면 exit 함수를 사용해야 합니다. 


출처 : https://msdn.microsoft.com/ko-kr/library/6wd819wh.aspx