项目阶段总结

问题杂记


1. 已有程序加入代码时 如果要在enum里面加入新的项 要注意加入的位置 一般情况是enum {eEnumBeginXXX, eEnum1, eEnum2......eEnumEndXXX}
要加在中间 因为另一个enum可能承接上一个enum 如enum {eEnumAgainBeginXXX = eEnumEndXXX+1, eEnum1,eEnum2......eEnumAgainEndXXX}
这时如果我们不加在中间 有可能就和下一个enun里的项的值重复了

2. 结构体保持一致问题 举个例子 如果C/S公用一个头文件 头文件里定义了多个结构体 则一定要注意结构体的一致性问题 如:`typedef struct _tagStartInfo {int nVar; BOOL bVar; DWORD dwVar;}`则要注意客户端和服务器平台环境。环境不同可能导致int或者BOOL占用的字节数不同。 还要注意的一种情况是一个结构体内嵌在另外一个结构体里,一定也要保证这个被嵌入的结构体是一致的,所以要细心的检查。 C/S两端的结构体不匹配就会导致接收到的数据错位,会出现很多诡异的问题,增加排查的负担。 解决办法: 以后的模块代码最好先把数据类型都统一typedef一下 这样方面依据不同平台进行调节。
3. 最近用cocos2dx引擎开发手游 一般都会有断线续完的一种功能 简单来说就是玩家因为网络差或者误操作退出了游戏,当他再重新进入游戏时,如果游戏未结束他还能继续玩游戏。做法就是服务器会时刻保存一桌上所有玩家的数据,当一个玩家断线回来时 把这份数据发给它。最近在项目中遇到这样一个问题, 断线续完回来之后某个结构体成员变量的值都是非常奇怪的-856213486,明显看出是没有初始化。但需要的是从服务器传回来的配置数据。仔细排查发现断线续完发回来的数据不包括这个结构体的信息 。正常进入游戏时会接收到这个结构体的信息。所以问题是没有对两种情况进行区分。 解决办法就是断线续完时也发回这个结构体的信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值