这并不是个很好的风格, 虽然这是个流行的习惯用法。如果两个 字符串相等, 这个测试返回为真, 但 ! (``非") 的使用, 容易引起误会, 以为测试不等值情况。
另一个选择是用一个宏:
#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)
参见问题 17.8。