您的位置:首页 > 大数据 > 人工智能

main()与_tmain()的区别

2016-07-29 15:01 459 查看

区别

tmain()是Unicode版本的的main(),所以main()_tmain()其实就是同一个东西。

_tmain这个符号多见于VC++创建的控制台工程中,这个是为了保证移植Unicode而加入的(一般_t、_T、T()这些东西都和Unicode有关系),对于使用非Unicode字符集的工程来说,实际上和main没有差别(其实就算是使用Unicode字符集也未必有多大的差别)。

_tmain()是为了支持Unicode编码所使用的main()的一个别名而已。关于Unicode编码可以查看可以查看[Unicode]

_tmain的定义在tchar.h,在tchar.h的宏定义可以找到:

#define _tmain main


所以程序要加
#include <tchar.h>
才能用。

main()是标准的C++的函数入口,C++的程序入口函数的编码格式是 [ANSI编码]

扩展

在stdafx.h会发现有以下几句代码:

#define _tmain      wmain
#define _tWinMain   wWinMain


或者

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


1) wmain也是main的另一个别名,是为了支持二个字节的语言环境。

2) winmain是windows api窗体程序的入口函数(int winapi winmain()中winapi是__stdcall的宏 在windows.h中定义)

3) _tmain _twinmain是Unicode版本函数别名 为了编译时能自动转换字符串编码

总结

1) main()是WINDOWS的控制台程序(32BIT)或DOS程序(16BIT)。

2) WinMain()是WINDOWS的GUI程序,wmain()是Unicode版本的main()。

3)_tmain()是个宏,如果是Unicode则他是wmain()否则他是main()

外,wmain也是main的另一個别名,是为了支持二个字节的语言环境。

文章转载编辑自:http://www.cnblogs.com/lucyjiayou/archive/2011/05/07/2039621.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  main tmain 编码