3.空格、换行、常量替换、{}保护、还有效率。
if((long_state_var==1)||(long_state_var==2)||((ch>0x2F)&&(ch<0x3A))) do_something(); |
狂吼一声,这段代码立马会给改成这样。
if ((long_state_var==1)||(long_state_var==2) \ ||((ch>0x2F)&&(ch<0x3A))) { do_something(); } |
长字符行要换行,模块要添加{}保护,这是做人的底线。
赶紧快速编辑了而下,舒了口气。
if ( (long_state_var == 1) \ || (long_state_var == 2) \ || ((ch>0x2F) && (ch<0x3A)) ) { do_something(); } |
加上空格的美化,更有层次感。
无意义的常量就会被处理成这样的,
长变量名也会被适当缩短。
而0x2F、0x3A这种坑爹的的常量,
则会被他心里狠狠地鄙视:
“丫丫的,原创者这是在炫智商、秀优越吗?”。
#define MODE_NAME_1 (1) /* 简单描述模式1 */ #define MODE_NAME_2 (2) /* 简单描述模式2 */ if ( (stat == MODE_NAME_1) \ || (stat == MODE_NAME_2)) \ || ((ch>='0') && (ch<='9')) ) /* 数字字符 */ { do_something(ch); } |
常量用宏替代,这样的代码意图会比较清晰。
#include …… if ( (stat == MODE_NAME_1) \ || (stat == MODE_NAME_2)) \ || (is_digit(ch)) ) { do_something(ch); } |
is_digit的加入,使得代码与注释浑然天成。
这个时候,这段代码又会被优化成这样的。
if (is_digit(ch)) { do_something(ch); } else if ((stat == MODE_NAME_1) \ || (stat == MODE_NAME_2)) { do_something(ch); } else { /*已考虑无误*/ } |
为了效率,可以牺牲一点代码可阅读性。
用户1639872 2013-12-25 22:27
用户1364870 2013-12-25 17:44
用户554640 2013-12-25 15:44
用户1406868 2013-12-25 10:42
用户443808 2013-12-25 08:56
用户1406868 2013-12-25 08:55
用户1639872 2013-12-24 01:58
用户1639872 2013-12-24 01:56
用户1639872 2013-12-24 01:47