FITURE

If you can fight, fight.

首页 >> 分享>>浅谈_tmain()函数

浅谈_tmain()函数

Posted by fiture / 2011年04月12日 / 分享

这个学期学C/C++,老师叫我们下一个Visual C++ 6.0,本人有一种爱好就是什么东西都喜欢新的,尤其对新版本软件有特别癖好!所以呢,我就鬼使神差的下了一个Visual C++ 2010来用着,可是刚打开的时候我都有些摸不清头脑了,和Visual C ++ 6.0有很大的差别。

一开始我连Visual Studio、和Visual C++,有什么不同我都不知道。纠结了很久,上网查了下资料,原来前者是一个多语种的集成开发环境,不仅有C++还有C#、Visual Basic等…最后选择还是下载了Visual C++ 2010。

然后呢,打开第一个文件就蒙了、软件自动生成了如下代码:

#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])

{

return 0;

}

首先头文件不是stdio.h,然后下面那个什么东东。看不懂了。……呵呵,你看懂了吗?我算是基本上搞清楚了,下面看我慢慢道来。

1、头文件stdafx.h

stdafx.h的英文全称为:Standard Application Framework Extensions,这是一个预编译头文件。所谓预编译头文件就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。

2、_tmain()函数

其实说简单点,这个_tmain()函数和C/C++中的main()函数相同,只是为了兼容unicode,而这样写的。_tmain()只是main()函数的一个别名。所以这个函数经过编译后仍然是main()函数。

3、_tmain(int argc, _TCHAR* argv[])中的参数:

int argc表示参数(包括程序名)个数,char *argv[] 字符串数组,字符串数组的每个单元是char*类型的,指向一个c风格字符串。所以_TCHAR类型是宽字符型字符串,和我们一般常用的字符串不同,它是32位或者更 高的操作系统中所使用的类型。

简单的说argv是一个指针数组,其中每个指针指向一个字符串,即一个参数,因此argv[0]就是程序名,argv[1]就是第一个参数。其实_tmain()中的参数可以用一个void代替。

综上,神马_tmain()、stdafx.h这些都是些浮云……但是这样的写法看似更专业,更有魅力,推荐大家这样写哈!

一条回应:“浅谈_tmain()函数”

发表评论

电子邮件地址不会被公开。 必填项已用*标注