这几天看别人的代码,一点感受总结如下,求讨论~
1.函数的返回值
不明白什么情况下会有不需要返回值的函数。
个人认为返回值是必须的,而且不应该用来作为对象返回使用,而应该用于标识函数执行的结果:成功,失败。失败时应该提供错误码。对象返回拜托使用函数的参数区完成。
2.命名
代码的可阅读性很大程度决定于命名。比如函数的参数,请明确通过参数名标识该参数是入参还是出参。比如变量,请标识数据类型。像haha[],haha2[]这样的参数真的很让人想骂娘。
命名里还包括全局变量命名,函数命名。对于面向对象的程序还包括类,方法,成员变量的命名。很赞同一位同事的话:代码是写给人看的,不是给机器看的。请考虑看代码人的感受。
3.宏定义
对于if,switch之类的地方,请尽量使用宏定义进行判断。
4.打印
打印请统一格式,一定要按照级别打印。不然,请试想在汪洋大海的打印信息中查找关键的一条信息的感受。
另外,应该要求每条打印都输出自身的文件名和行数。特别对于c语言,定位的时候很有用的东西。试想,发现一个出错前的打印信息居然在工程的两个不同地方都有出现,你不想骂人么。
5.注释
结构体定义请顺便注释上每个字段的含义,对于固定取值的字段标准上各个取值对应的含义。
6.abort 请慎用
居然在代码里看到一个判断为空时整个程序abort的代码。太惊悚了。通信设备一般情况都是7×24小时工作的,一般的错误就abort ,兄弟们会恨你的!
ps:想起曾经在某本书里看到,推荐的函数定义为 :
int32 funcName (int iInlen,void * inPtr,int iOutLen, void * outPtr);