最近在用VS2010编程,突然发现和VC6.0有很大的区别,第一个就是没有int main(),出现了int _tmain()。网上查了查变化,贴在下面。由于都是很基础的东西,所以大家别笑我呀~主要还是给学生们解答些简单的问题。
用过C的人都知道每一个C的程序都会有一个main(),但有时看别人写的程序发现主函数不是int main(),而是int _tmain(),而且头文件也不是<iostream.h>而是<stdafx.h>,会困惑吧?
一起来看看他们有什么关系吧
首先,这个_tmain()是为了支持unicode所使用的main一个别名而已,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的<stdafx.h>里,有这么两行
#include <stdio.h>
#include <tchar.h>
我们可以在头文件<tchar.h>里找到_tmain的宏定义
#define _tmain main
所以,经过预编译以后, _tmain就变成main了,这下明白了吧
但是在VS2010中,_tmain 的定义变成wmain,wmain是什么呢?
这一段时MSDN上的解释:
The main function marks the beginning and end of program execution. A C or C++ program must have one function named main. If your code adheres to the Unicode programming model, you can use the wide-character version of main, which is wmain.
意思是说,main的函数标记了一个程序的开始和结束,一个C/C++程序,必须有一个main函数。如果你的代码添加了Unicode的程序模块,你就得用宽字节版本的main函数,这就是wmain
也就是说,main,wmain,_tmain这三个函数的意思都是一样的,只不过是对应不用的版本。所以,以后在初级编程中,应该不需要管这三个main的区别,新手注意了哟~