游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 一元

浅谈程序的核心--复杂度

[复制链接]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20797
发表于 2015-10-16 11:18:36 | 显示全部楼层
snghun 发表于 2015-10-13 11:32
我还是觉得这个代码才有问题。

sizeof(a)/sizeof(a[0] 的意义在哪里?

意义在于

未来如果程序需要修改 a[10],你不用在代码里四处找可能跟这个数组下标有关系的代码片段,万一漏修改了一个,那这个bug就GG了,楼主的意思是尽量降低耦合度,避免一些参数修改带来的很多记忆隐患。

楼主代码只是个小片段,我们看起来通常不会那么傻,不去修改for循环里的5,但如果代码成千上万行,那就有风险了。

点评

#define A_MAX 5 int a[A_MAX] for( ...; i < A_MAX; ...)  发表于 2015-10-16 13:14

34

主题

844

帖子

1755

积分

金牌会员

Rank: 6Rank: 6

积分
1755
发表于 2015-10-16 13:16:02 | 显示全部楼层
sea_bug 发表于 2015-10-16 11:18
意义在于

未来如果程序需要修改 a[10],你不用在代码里四处找可能跟这个数组下标有关系的代码片段,万一 ...

#define A_MAX 5 //有事,修改此处

int a[A_MAX];

for( ...; i < A_MAX; ...)

3

主题

173

帖子

747

积分

高级会员

Rank: 4

积分
747
发表于 2015-10-16 14:29:52 | 显示全部楼层
如果我负责面试,一定会问楼上这位培训班出来的兄弟一个问题:C语言中的宏有什么缺点。

2

主题

13

帖子

64

积分

注册会员

Rank: 2

积分
64
发表于 2015-10-17 14:41:38 | 显示全部楼层
snghun 发表于 2015-10-16 13:16
#define A_MAX 5 //有事,修改此处

int a[A_MAX];

用 宏 等出 bug 了能玩死人
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-3-19 03:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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