mfc 控制台程序

    自动生成的C++控制台程序
    认识预编译头
    认识_tmain

 
一 、自动生成的控制台程序

二 、认识预编译头 StdAfx

    所谓的预编译头就是把一个工程中的某一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件。这些预先编译好的代码可以是任何的C/C++代码,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。生成预编译头文件很耗时间。预编译头文件通常很大,通常有6-7M大。应该及时清理那些没有用的预编译头文件。

编译器是以文件为单位编译的,一个文件经过修改后,会重新编译整个文件,当然在这个文件里包含的所有头文件中的东西如宏等,都要重新处理一遍。VC的预编译头文件保存的正是这部分信息,以避免每次都要重新处理这些头文件。
预编译头的作用:
       
要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件)

VC工程里的   StdAfx.h这个文件就是这样一个头文件,它是可以任意命名的,只不过VC的默认命名为StdAfx.h。

三 、认识_tmain
  
 1. Main是所有c或c++的程序执行的起点,_tmain是main为了支持unicode所使用的main的别名 ._tmain()不过是unicode版本的的main() .  
 2. _tmain需要一个返回值,而main默认为void.  
 3. _tmain的定义在<tchar.h>可以找到,如#define _tmain main,所以要加   #include <tchar.h>才能用。_tmain()是个宏,如果是UNICODE则他是wmain()否则他是main(). 
 4. _tmain这个符号多见于VC++创建的控制台工程中,这个是为了保证移植unicode而加入的 (一般_t、_T、T()这些东西都是宏都和unicode有关系),对于使用非unicode字符集的工程来说,实际上和main没有差别(其实就算是使用unicode字符集也未必有多大的差别)。  
 5. 因此_tmain compile后仍为main,所以都可以执行. 

 

posted @ 2016-12-14 10:14  whzym111  阅读(620)  评论(0编辑  收藏  举报