浅析_tmain() 与 main() 函数的区别

    _tmain()是为了支持Unicode所使用的main的一个别名,既然是别名,应该有宏定义过的,在<stdafx.h>里

#include <stdio.h>

#indlude <tchar.h>

我们可以在<tchar.h>中找到_tmain()的宏定义

#define _tmain main

所以经过预编译后,_tmain就变成了main了。

main()是标准的C++的函数入口。标准C++程序入口点函数,默认字符编码格式为ANSI

函数签名为:

int main();

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

_tmain()是Windows提供的对Unicode字符集向ANSI字符集自动转换的程序入口点函数。

函数签名为:

int _tmain(int argc, TCHAR *argv[]);
  • 当你的程序当前的字符集为Unicode时,int _tmain(int argc, TCHAR *argv[])会被翻译成 int wmian(int argc, wchar_t *argv[])
  • 当你的程序当前的字符集为ANSI时,int _tmain(int argc, TCHAR *argv[])会被翻译成 int mian(int argc, char *argv[])

总之,int _tmain()函数是int main()函数的一个宏定义,当我们的字符集是Unicode时就应该使用int _tmain()。

参考文献:

[1] http://www.jb51.net/article/34516.htm

原文地址:https://www.cnblogs.com/little-YTMM/p/4873782.html