游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1711|回复: 2

什么叫做程序中的“风格统一”??是这么理解的吗???

[复制链接]

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2009-3-3 16:00:00 | 显示全部楼层 |阅读模式
我又来了。。。。

上一次发了“写了这么多年程序,越写越懵了。。”帖子以后,很多朋友都回帖了,非常感动,我现在每天要做的一件事情,就是把大家的回帖看一遍。。(关键是有些朋友说的一些建议我还不是很理解。。。哈哈。。。。)

公司给我最近的任务我又做完了。。所以最近想利用业余时间写一个基于 DirectX 渲染的 GUI 库。。
刚写了个开头,碰上点疑惑,以前我写程序的时候,是能用就用,从不讲究。。。现在嘛,由于想在新的工程中多加考量,所以写之前会想很久。。。

字符串,这东西大家恐怕是用得非常频繁的东西了,我在处理字符串的使用只用过两类方法:
1.C 标准库中的函数:sprintf,swprintf,strcat.....
2.C++ STL 中的 string,ostringstream:主要就是 STL 提供的一些方法啦.....

在我看来,这两种方法,都能够完成所有的字符串处理任务,只不过是难易度和效率上有差别。。。

那么我在一个项目中(就说这个 GUI 库吧。。。),在处理字符串时,是用哪种方法呢??
程序中的“风格统一”是不是说,在处理同一个问题上(比如字符串),要使用相同的方法呢??
也就是说,如果我决定使用 C++ 的 string,那么我在整个程序中碰到字符串的地方都要使用它,而完全放弃 C 函数??

其实,我很想用 MFC 中的 CString 的,这东西是我认为处理字符串最完美的方法。。。可惜。。。写游戏都是用的 WIN32 项目,哎。。。。

哦,对了,顺便打听一下,大家在 WIN32 下写游戏(DirectX\OpenGL)的时候,一般是采用哪种方法来处理字符串呢?为什么??





19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-3-3 19:47:00 | 显示全部楼层

Re:什么叫做程序中的“风格统一”??是这么理解的吗?

由于C++的固有原因,不论你选哪一种字符串,C字符串都是你无法摆脱的。因为字符串常量都是C的,很多库函数也是用C串做输入。从效率上说,很多时候用C串做参数可以避免用其他string类时的拷贝构造或从C串常量构造。但需要得到串长度时,C串的效率又是最低的。

STL的string设计得并不太好(毕竟非常非常老),通常不是很方便。CString使用很方便,但缺点就是需要引入额外的library。不过从VC7之后,CString已经从MFC剥离,而作为通用的ATL/MFC基础库。所以CString不再依赖于MFC,也就可以考虑使用了。

从现实情况来说,游戏引擎中的主流选择有两种,一种是纯C串,一种是自己写String类。自己写String是典型的重复代码,但人家的目的是跨平台,所以也有理有据。不过多数游戏引擎都是或者预期是跨平台的,所以自然不能用VC的东西。对我们自己的引擎来说,如果没必要,最好走单平台优势路线,简单快捷、功能强大。

所以,既然你要用WIN32,就完全可用CString。

21

主题

112

帖子

118

积分

注册会员

Rank: 2

积分
118
 楼主| 发表于 2009-3-3 21:08:00 | 显示全部楼层

Re:什么叫做程序中的“风格统一”??是这么理解的吗?

“不过从VC7之后,CString已经从MFC剥离”..........
啊 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
苍天啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
用了N年的 2003 和 2005,我居然不知道。。。。。。。。。。。。。。
[em6] [em6] [em6] [em6]

CString 我来啦~~~~~~~~~~~~~~~~  [em20] [em20] [em20] [em20]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-20 05:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表