游戏开发基础知识2——函数指针

作者: 分类: 程序开发 发布时间: 2010-12-29 12:55

前面介绍了如何进行模块化以及Lib库的制作,关于库的制作,后面会再次深入讲解的,不过可能会在锋酷开发社区(www.flycode.org)上做一个专题来讲解的,到时候希望大家关注下。
前面我们已经说过了,再多人合作开发过程中,模块化显得非常重要。在模块化开发过程中呢,比较重要的就是函数指针了,大家都知道C++的一个很重要的特征就是多态,函数指针可以让你更轻松的使用这个特征。函数指针可以指向你自己写的函数地址,就像Windows编程中的事件和消息一样,包括菜单等的一些操作都是使用函数指针的,API编程中的callback函数就是一个典型的例子。

通过上面的例子,我们可以看到,这个有点类似于重载函数,不过重载函数是三同(返回类型相同,函数名称相同,参数列表参数个数相同),而函数指针可以看到是两同(返回值相同,参数列表类型和个数相同,调用的函数名不同)。
==============================================================================
Windows函数与数据类型的使用
关于Windows中的函数我觉得在MFCAPI中用的非常多,到处可见,这些都要大家在平时编程中经常使用就会比较熟悉了,不懂得可以多查查MSDN,相信如果你从事Windows开发的,相信你会经常看MSDN的。
数据类型,比如BOOLsize_tBYTEDWORDDWORD PTRLPCSTRLPCTSTR等,如果你真的感兴趣的话,可以通过转到定义看看他们的定义,一般都是如下格式的:
#define XXX YYY  //其实就是个宏定义,改名而已,大家不要觉得奇怪

常用的数据类型请查看原文章中的表格或者MSDN

还有一些Windows中的函数,我觉得大家可以自己去查查,我在此就不多赘述了。

为什么要使用Windows中的数据结构和函数?

因为目前大部分的网络游戏都是在Windows系统上运行的,而且像DXMFC都是基于Windows系统的,为了更好的切合Windows系统,只好使用Windows中函数了,而且由于现在的系统平台分为很多,32位,64位等,Windows系统中提供的数据类型在不同的系统中长度一般来说是不相同的,但是由于这些数据类型时Unicode类型的,所以尽管在不同的系统平台上,他们的大小变化还是一致的,不会出现越界等内存泄露情况,所以这就注定了游戏开发中基本都是使用Windows上的一套东西。
好了,今天暂时先说这么多了,基础的内容爱语很多,不过相信大家都有一些基础储备的,不懂得东西多查查多看看,后面会开始进入服务器开发的一些基础内容,希望大家继续关注。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

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