代码风格

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 发明的一种给变量取名字的方式。他 在变量前加上变量的类型,这样,看看变量的名字就知道变量的类型了。显 然的缺点是有必要在名字前做这个记号吗?