18.2 用 if(!strcmp(s1, s2)) 比较两个字符串等值,是否是个好风格?

这并不是个很好的风格, 虽然这是个流行的习惯用法。如果两个 字符串相等, 这个测试返回为真, 但 ! (``非") 的使用, 容易引起误会, 以为测试不等值情况。

另一个选择是用一个宏:

	#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)

参见问题 17.8

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)