1 什么是最好的 C 语言布局方式?
在最常见的 K&R 提供的例子中,我们可以注意到这样的事实:
虽然有人热衷于花括号的位置,其实他们并不重要。选择 一种你喜欢的方式,然后持续地使用他。
相比较而言,持续地贯彻你的 (或者是你们的) 选 择更重要。在这里没有最好的方式。如果你的环境 (你的客户或者你的公 司) 没有作要求,并且你也不想“发明”一个的话,那么就使用 K&R 风格。
难以捉摸的“好的风格”不只是包含了代码的布局方式,不要化 太多的时间在他上面,代码的质量更重要。
2 这里有一段常见的短小精干的代码
if(!strcmp(s1, s2))这种风格如何?
虽然他在一定的范围内流行很广,可是他可不是一个好的风格。如果两 个字符串相等,那么返回真。但是 ! (“否”') 的使用则表明不相等 的时候才执行 if 后面的语句。
一个好的选择方式是用宏:
#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)
在编程风格上的讨论如同在宗教上的讨论一样,总会导致无休 止的争端。虽然好的风格是我们追求的,也有公认的好的风格,但是这里可没 有法律。
3 为什么有人用 if (0 == x) 来代替 if (x == 0) ?
这是个小技巧,使用这个技巧来防止常见的
if(x = 0)错误。如果你习惯将常数放在 == 的前面, 那么当你偶然写成
if(0 = x),编译器将报错。显然,记住颠倒顺序比记住两个 = 更容易。
4 什么是匈牙利命名规则?值得吗?
匈牙利命名规则是 Charles Simonyi 发明的一种给变量取名字的方式。他 在变量前加上变量的类型,这样,看看变量的名字就知道变量的类型了。显 然的缺点是有必要在名字前做这个记号吗?