tmain和main的區別

2021-09-30 10:49:14 字數 1311 閱讀 1839

基本目的:

main()是標準c++的函式入口。標準c++的程式入口點函式,預設字元編碼格式ansi

函式簽名為:

int main();

int main(int argc, char* ar**);

_tmain()是微軟作業系統(windows)提供的對unicode字符集和ansi字符集進行自動轉換用的程式入口點函式。

函式簽名為:

int _tmain(int argc, tchar *ar**)

當你程式當前的字符集為unicode時,int _tmain(int argc, tchar *ar**)會被翻譯成

int wmain(int argc, wchar_t *ar**)

當你程式當前的字符集為ansi時,int _tmain(int argc, tchar *ar**)會被翻譯成

int main(int argc, char *ar**)

區別:

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

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

1。 main是c程式的函式,_tmain是main為了支援unicode所使用的main的別名

2。 _tmain的定義在可以找到,如#define _tmain main,所以要加#i nclude 才能用。

3。因此_tmain compile後仍為main,所以都可以執行

另外,wmain也是main的另乙個別名,是為了支援二個位元組的語言環境

注意:是不是用unicode不是在程式啟動的時候決定的,而是在程式編譯的時候看有沒有預處理定義"unicode",所以_tmain的作用就和使用tchar而非具體的char或w_char一樣,當編譯時定義了unicode時,就是wmain當沒定義時就是main,

三個main函式的作用範圍:

1) main()是windows的控制台程式(32bit)或dos程式(16bit),

2) winmain()是windows的gui程式,

wmain()是unicode版本的main(),

3)_tmain()是個巨集,如果是unicode則他是wmain()否則他是main()

外,wmain也是main的另乙個別名,是為了支援二個位元組的語言環境

tmain 和main 的區別

首先,這個 tmain 是為了支援unicode所使用的main乙個別名而已,既然是別名,應該有巨集定義過的,在 定義的呢?就在那個讓你困惑的裡,有這麼兩行 include include 我們可以在標頭檔案裡找到 tmain的巨集定義 define tmain main 所以,經過預編譯以後,tm...

tmain 和main 的區別

tmain是main為了支援unicode所使用的main的別名 tmain 不過是unicode版本的的main 不是用unicode不是在程式啟動的時候決定的,而是在程式編譯的時候看有沒有預處理定義 unicode 所以 tmain的作用就和使用tchar而非具體的char或w char一樣,當...

tmain與main的區別

過c言語的人都知道每乙個c的程式都會有乙個main函式,但有時看別人寫的程式卻出現了 tmain,會感動很困惑。我當時也是很困惑,於是上網找資料看。現在將我得到的結果總結一下。因為並沒有什麼根據,如果有誤。歡迎指正 tmain與main的區別 1。main是c程式的函式,tmain是main為了支援...