tag 标签: 长行换行

相关博文
  • 热度 34
    2013-12-25 00:27
    1739 次阅读|
    9 个评论
    3.空格、换行、常量替换、{}保护、还有效率。 if((long_state_var==1)||(long_state_var==2)||((ch0x2F)(ch0x3A)))     do_something();   看到这种代码,他就感觉 浑身难受、头晕恶心 ….. 狂吼一声,这段代码立马会给改成这样。 if ((long_state_var==1)||(long_state_var==2) \       ||((ch0x2F)(ch0x3A))) {     do_something(); } 长字符行要换行,模块要添加{} 保护,这是做人的底线。   再瞄一眼,会发现没有空格也很让人难过。 赶紧快速编辑了而下,舒了口气。 if ( (long_state_var == 1)         \   || (long_state_var == 2)         \   || ((ch0x2F) (ch0x3A)) ) {    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 的加入,使得代码与注释浑然天成。     后来他在优化过程中发现,ch的值在99%的情况下都满足'0'~'9',  这个时候,这段代码又会被优化成这样的。 if (is_digit(ch)) {     do_something(ch); } else if ((stat == MODE_NAME_1)  \ || (stat == MODE_NAME_2)) {     do_something(ch); } else {    /* 已考虑无误 */ } 为了效率,可以牺牲一点代码可阅读性。