游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 执着

请问MIU.C,什么是硬编码?

[复制链接]

15

主题

2093

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
发表于 2007-5-3 21:34:00 | 显示全部楼层

Re: Re:请问MIU.C,什么是硬编码?

航天奇侠: Re:请问MIU.C,什么是硬编码?

硬编码和软编码是相对来说的。
硬编码主要是关联很紧密的结构,而软编码是关联比较松的。
从实现的层次上,也就是一级关联很多级关联的差别。比如
int i = 1; 这个是数字和变量的直接一级关联
#define pig 1
int i = pig; 这个是数字通过pig间接关联数字。

多级关联的好处就是你可以通过修改中间的一层,而不需要直接改变对应的一层。比如你可以改变pig 2,而不需要改变int i = pig;

如果你觉得这样只不过是增加无聊的层次,那么首先应该认识到中间层带来的若干好处。比如清晰的逻辑划分:
#define pig 1
int i = pig
ing j = pig
i,j 都是对应一个逻辑词pig,而不是某个数字,我们可以预想到,如果pig需要改变,那么i,j都是应该改变的,因为他们逻辑相同。如果硬编码就不能表达这种逻辑上相同的关系,只能分别修改i,j。这就浪费一些时间,同时增加出错的可能性。
第二个是中间层可以抽象一个简单的使用界面出来,方便具体实现的修改:
同时是相面的例子,我们不需要理会pig具体是什么,也就是不需要理会pig的实现。这样就可以将实现和接口区分,pig可以修改而不干扰的使用它的代码。
#define pig 2
int i = pig; //不用改变
ing j = pig;  //不用改变

不过软编码比硬编码要复杂一些,对以后的考虑要周到一些。软编码是一种设计,而硬编码不过是一种具体的实现。软件开发不只是需要一个软件的实现,更需要软件能够很好的修改,方便得扩展,所以需要一些设计技巧在里面。


计算机科学是这样一门科学,它相信所有问题都可以通过多一个间接层来解决。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2007-5-3 23:13:00 | 显示全部楼层

Re:请问MIU.C,什么是硬编码?

今天的景山公园的牡丹开的不错。早几天就更好了。

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2007-5-4 18:16:00 | 显示全部楼层

Re:请问MIU.C,什么是硬编码?

路边的野花,你不要采.

187

主题

6490

帖子

6491

积分

论坛元老

团长

Rank: 8Rank: 8

积分
6491
发表于 2007-5-4 18:17:00 | 显示全部楼层

Re:请问MIU.C,什么是硬编码?

邓丽君,不错不错~~~

16

主题

280

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
QQ
发表于 2007-5-13 04:59:00 | 显示全部楼层

Re: 请问MIU.C,什么是硬编码?

把功能函数往外拉,不然每次修改都得重编译[em6]
1:
const int a=10;
std::cout<<"0至"<<a<<"相加"<<std::endl;
int c(0);
for(int b(0);b!=a;++b)
  c+=b;
c+=a;
std::cout<<c<<std::endl;

2:
std::cout<<"0至"<<"10"<<"相加"<<std::endl;
int c(0)
for(int b(0);b!=10,++b)
  c+=b;
c+=10;
std::cout<<c<<std::endl;

2是1的硬编码
如果是0-100,1只需修改最上的a,而2必须修改3处(3个10,即a)。 [em17]

(CuriousZhen自言自语:TMD垃圾CuriousZhen,写个代码修改N次,还玩毛!)[em10]

7

主题

109

帖子

169

积分

注册会员

Rank: 2

积分
169
 楼主| 发表于 2007-5-17 13:09:00 | 显示全部楼层

Re:请问MIU.C,什么是硬编码?

谢谢各位

23

主题

142

帖子

142

积分

注册会员

Rank: 2

积分
142
发表于 2007-5-23 20:49:00 | 显示全部楼层

Re:请问MIU.C,什么是硬编码?

哈哈!我软硬兼施!管你是软还是硬呢?!策划怎么写 就怎么写
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 09:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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