프로그래밍을 하다보면 일반 main문 이외에도 wmain, _tmain이 존재하는 것을 알 수 있고 우리를 헷갈리게 한다.

 

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


main()함수는 C++ 표준 함수에 해당한다. 

main이라는 함수는 모든 C/C++ 프로그램이 실행되는 시작 지점이다. (시작 지점으로 진입하기 전에 런타임 라이브러리 초기화도 거침)

 

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


wmain의 경우 유니코드 프로그래밍 모델을 따르는 코드를 작성했을 때 사용한다. w는 wide의 의미를 가지며 main의 와이드 문자버전이다.

 

 

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


_tmain 함수는 Microsoft에서 확장된 형태의 main이다.  쉽게 말하면 main과의 차이는 멀티 바이트를 사용했느냐 유니코드를 사용했느냐에 따라 달라진다. _tmain 함수는, 유니코드를 지원하는 프로그램을 컴파일 할때 wmain 함수로 변경되고 유니코드를 지원하지 않는 프로그램을 컴파일 할 때 main 함수로 바뀐다.

 

즉, _tmain은 멀티바이트 사용이냐 유니코드 사용이냐에 따라 main과 wmain으로 바뀐다.

 

_tmain을 사용하기 위해서는 TCHAR.h 헤더 파일을 선언해야 한다.

 

 

기타


주로 int main(void)와 같은 형식을 많이 사용하나 void main(void)와 같이 반환형을 void로 주고 싶다면 exit 함수를 사용해야 한다.

 

Reference


[1] https://noirstar.tistory.com/11

[2] https://ss0x00.tistory.com/4

+ Recent posts