_tmain()和main()區別

_tmain()是unicode版本的的main()   

_tmain這個符號多見於VC++創建的控制檯工程中,這個是爲了保證移植unicode而加入的(一般_t、_T、T()這些東西都和unicode有關係),對於使用非unicode字符集的工程來說,實際上_tmain和main沒有差別(其實就算是使用unicode字符集也未必有多大的差別)。

1. main是C程序的函數,_tmainmain爲了支持unicode所使用的main的別名。
2. _tmain的定義在<tchar.h>可以找到,如#define _tmain main,所以要加#include <tchar.h>才能用。
3. 因此_tmain compile後仍爲main,所以都可以執行。
另外,wmain也是main的另一個別名,是爲了支持二個字節的語言環境。

/* Program */
#define _tmain main
#define _tWinMain WinMain
#ifdef _POSIX_
#define _tenviron environ
#else
#define _tenviron _environ
#endif
#define __targv __argv


在 tchar.h 文件中定義的 _tmain只是一個宏。

1. main是c/c++的標準入口函數名。
2. winmain是windows api窗體程序的入口函數(int winapi winmain()中winapi是_stdcall的宏,在windows.h中定義)。
3. _tmain _twinmain是unicode版本函數別名 爲了編譯時能自動轉換字符串編碼。

http://www.cnblogs.com/lucyjiayou/archive/2011/05/07/2039621.html

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章