试过将main() 和 WinMain()函数放在.h文件中码?

来源:互联网 发布:淘宝零食店排行 编辑:程序博客网 时间:2024/05/27 20:46

程序入口函数(main或WinMain)放置在.h文件中,你试过吗?

先看一个简单程序:

 //Main.h

#include <iostream>
using namespace std;

int GameMain(void);

int main(void)
{
     cout << "Hello-main" << endl;
     GameMain();
     return 0;
}

---------------------------------------------------

//Main.cpp

#include "Main.h"
#include <cstdio>

int GameMain(void)
{

    printf("Hello-GameMain");

    return 0;
}

编译运行后:

Hello-main

Hello-GameMain

         在学习MFC时,开始也没发现有入口函数(MFC的入口函数为_tWinMain)的影子,后来明白是在全局对象theApp被CWinApp构造函数构造的过程中调用了入口函数_tWinMain()。从中发现入口函数是可以通过构造函数隐式调用的。

       学了两年的编程语言,我真不知道可以将程序入口函数放置在.h文件中。今天在看A*算法(静态地图最短路径搜索算法原文链接)时,看作者提供的实现代码时未发现WinMain函数的影子,感觉好奇怪,但是整个工程竟然是可正常运行的。最后发现猫腻在LunchWindow.h这个头文件。于是有了此文。

        我都一直墨守成规的将main函数放在.cpp文件中,虽然知道.h文件中可以声明变量、函数原型、函数实现、宏定义等等,但是从未怀疑过main函数的实现也能放在.h文件中,并且也能使工程正常的运行。

       以前以为自己很懂.h文件的功能,但是今天看来,我错了,错得很远!在此作文告诫自己。

 

 

 

 

 

 

 

 

原创粉丝点击