关于错误

14.使用接口的时候需要了解接口的实现,很多时候一些较为相同的接口完成的功能与想象中的是不一样的,确定自己使用的接口的功能是最安全的,额,俺们游戏出现的问题,刷道具。

 

1.一些逻辑可以直接利用 数字的符号来处理,-- a,b正负表示2个阵营,0表示中立,则a*b<0就表示ab在对立阵营。

2.任何时候使用指针都要先检查是否为空。特别是服务器端。 -- Player * p = GetPalyer();  if(p) ...

3.变量初始化至关重要,包括任何变量。  -- int a = 0; 或者 int a = -1;

4.作为数组索引的变量一定要特别小心,定要确保不会越界,一般可在索引前做检查。  -- a[i]  i是否<0,大于数组总长度?

5.做完一个功能需要从各种情况进行测试。
6.遇到 /,% 等计算,必须要确保不会出现除0错误。
7.关于容错,比如刚取出来准备使用的指针测试为空,那么此时应该做出适当的容错处理,而不是不加处理,同时至少应该马

上做出初步处理,免得之后忘记处理。  -- 刚开始我在测试指针为空的时候是这样写的else{//出错了},结果代码继续往下

执行造成了服务器崩溃。
8.自己的逻辑或者函数尽量不要依靠于外部接口  -- a = Function(),Myself(a){return array[a];},此时a是否满足Myself

的要求需要自己检查,尽量不要依靠Function约束返回值不越界。

9.lua中返回一个table引用,当为nil时,对该引用的修改不会影响到原table,除非引用为非nil。 -- local tab =

GetTable(); tab.value = 1; //此时如果第一行代码tab为nil,则GetTable中的table数据(value)不会被设为1。
10.非自能指针在其他地方最好不要保留它的引用,以其他方式代替,在需要使用的时候从管理器取出,以免指针在管理器中被

删除了而引用的地方不知道,造成使用无效的指针。
11.对于switch或if等判断的默认状态最好做出明确的处理,default,else尽量加上并处理。
12.有符号与无符号数字之间的计算特别需要注意,包括他们的返回值是否有符号。  -- 先列出,有待进一步完善
13.结构体中成员为string时候,结构体被ZeroMemery时候的问题。 -- 先列出,有待进一步完善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值