20130712--细节问题
2013-07-12 21:03
127 查看
代码效率问题!
实现一个功能,插入一个数组成员。
我写的:
王荻写的:
等到用的时候就错了!如果数组下标用了0、1、2、3、4,删除了3之后,我想查找4。用我的代码,将会发现数组3没用,就会添加在数组下标3里,造成代码错误。
所以,代码写完后,把自己当做使用人员,从各个角度考虑一下代码的可靠性,这样能省去很多的修改BUG时间,这才是真正的节约时间。
实现一个功能,插入一个数组成员。
我写的:
int gw_cfm_md_set(const char *name, int level) { int index = -1; int i = 0; for(i = 0; i < GW_CFM_MD_INSTANCES_NUM; ++i) { /* Check old */ if(GW_CFM_MD_ACTIVE == gw_cfm_md[i].active) { if( 0 == strcmp(gw_cfm_md[i].md_name, name) ) { index = i; break } } /* Set new */ else { gw_cfm_md[i].active = GW_CFM_MD_ACTIVE; if(name) { memcpy(gw_cfm_md[i].md_name, name, GW_CFM_MD_NAME_LEN); } gw_cfm_md[i].level = level; index = i; break; } } return index; }
王荻写的:
int gw_cfm_md_set(const char *name, int level) { int index = -1; int i = 0; /* Check old */ for(i = 0; i < GW_CFM_MD_INSTANCES_NUM; ++i) { if(!strncmp(name, gw_cfm_md[i].md_name, GW_CFM_MD_NAME_LEN)) { return i; } } /* Set new */ for(i = 0; i < GW_CFM_MD_INSTANCES_NUM; ++i) { if(GW_CFM_MD_NON_ACTIVE == gw_cfm_md[i].active) { index = i; gw_cfm_md[i].active = GW_CFM_MD_ACTIVE; memcpy(gw_cfm_md[i].md_name, name, GW_CFM_MD_NAME_LEN); gw_cfm_md[i].level = level; break; } } return index; }我只用了一个for,效率高吧。
等到用的时候就错了!如果数组下标用了0、1、2、3、4,删除了3之后,我想查找4。用我的代码,将会发现数组3没用,就会添加在数组下标3里,造成代码错误。
所以,代码写完后,把自己当做使用人员,从各个角度考虑一下代码的可靠性,这样能省去很多的修改BUG时间,这才是真正的节约时间。
相关文章推荐
- android中ViewPage使用的细节问题
- cocos2d-x 游戏开发新手细节问题
- 伴随开发人员成长的问题:工程重要,还是算法重要?细节重要,还是架构重要?
- JavaScript 中 Date 细节问题导致的程序 Bug
- Android布局 android:gravity 和 android:layout_Gravity一些细节问题
- Servlet使用的一些细节问题
- 将一个整数转换为单个字符输出函数实现的细节性问题
- SOCKET网络编程细节问题(2)
- 细节问题思考
- 关于html5 css3的细节问题
- cocos2d-x 快速熟悉Lua基本细节问题
- Asp.Net细节性问题精萃
- RTSP Extension element找不到的问题解决 - gstreamer元素注册的细节描述
- ios 代码细节问题
- Asp.Net细节性问题精萃
- java面试中多态的细节问题
- Asp.Net细节性问题精萃(转)
- strcmp函数使用中的一些细节问题
- Spark细节问题
- 2级C注意事项:都是些烦人的细节和抠门问题