了解了一下main函数的不同写法:
C程序中都会有一个main()函数,但有时别人的程序中不是int main()而是int _tmain(),而且头文件不是<iostream.h>而是<stdafx.h>。
这个_main()是为了支持unicode所使用的main的一个别名,既然是别名,应该是有宏定义过的,在<stdafx.h>中宏定义的。
有这样两行:
#include<stdio.h>
#include<tchar.h>
可以在头文件<tchar.h>中找到_tmain的宏定义
#define _tmain main
经过预编译以后,_tmain就变成了main。
int_tmain(int argc,_TCHAR* argv[])是微软VC++写法,它的原型与标准C++一样,只不过是微软底层把它重定义了。main函数和形参char 前面都有一个前缀_t(_T),它的原型是_TEXT,这是因为微软写的C++程序全部采用UNICODE(简称为万国码),即用VS写的C++程序可以在任何本地化计算机执行,并且不会乱码。
与int main(int argc,char*argv[])h,可以接收命令行位置参数
argc:整型,指示随后的
argv中参数的个数;
argv:代表运行后接的参数_TCHAR类型是宽字符型字符串,和我们一般常用的字符串不同,它是32位或者更高的操作系统中所使用的类型。
在VS2015试了一下:
#include<iostream>
#include<tchar.h>
using namespace std;
int _tmain(int argc,_TCHAR* argv[])
{
const char str[] = "We are happy.";
cout << sizeof(str) << endl;
cout <<strlen(str) << endl;
system("pause");
return 0;
}