本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第3章,建议24,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
建议24:选择合理的case语句排序方法
对于switch中的case 语句排序问题,如果case 语句很少时,可以忽略这个问题。但是,如果case 语句很多时,那就需要好好考虑这个问题了。一般而言,可以选择下面3个建议进行合理排序。
建议24-1:尽量按照字母或数字顺序来排列各条case 语句
通常情况下,如果所有case 语句没有明显的重要性差别,并且发生的频率都差不多,那么可以按A-B-C 或1-2-3 等顺序来排列case语句。这样做不仅可以提高代码的可读性,而且可以很容易找到某条case 语句,如上面的代码清单3-2所示。
建议24-2:尽量将情况正常的case 语句排在最前面
如果switch中存在多个情况正常的case 语句,同时又存在多个情况异常的case 语句。那么应该尽量将情况正常的case 语句排在最前面,而将情况异常的case 语句排在最后面。同时,做好相应的注释,如下面的示例代码所示:
switch(i)
{
/*正常情况开始*/
case 0:
/*处理代码*/
break;
case 1:
/*处理代码*/
break;
/*正常情况结束*/
/*异常情况开始*/
case -1:
/*处理代码*/
break;
case -2:
/*处理代码*/
break;
/*异常情况结束*/
default:
break;
}
建议24-3:尽量根据发生频率来排列各条case 语句
如果能够预测出每条case 语句大概的发生频率,就可以将执行频率最高的case 语句放在最前面,而将执行频率较低的case 语句放在最后面。这样不仅可以适当提高程序的性能,而且便于调试代码。因为执行频率最高的代码可能也是调试的时候要单步执行次数最多的代码。如果放在后面,找起来可能会比较麻烦,而放在前面则方便快速找到。