不应该以聪明才智和逻辑分析能力来评判程序员,而要看其分析问题是否全面
即便在不必要的情况下也使用花括号,这样做有两个好处。首先,由于很容易添加更多的语句到任何 if 或 else 子句中,程序变得更容易修改;其次,这样做可以在向 if 或 else子句中增加语句时避免由于忘记使用花括号而导致错误。
条件表达式使程序更短小但也更难以阅读,因此最好避免使用。
printf 函数的调用有时会得益于条件表达式。代码
if (i > j)
printf("%d\n",i);
else
printf("%d\n",j);
可以简化为
printf("%d\n",i>j ? i : j);
条件表达式也普遍用于某些类型的宏定义中 (14.3 节)
为了使程序更易于理解,C89 的程序员通常使用 RUE 和FALSE 这样的名字定义宏:
#define TRUE 1
#define FALSE 0
5.2.7 C99 中的布尔值
长期缺乏布尔类型的问题在 C99 中得到了解决。 C99 提供了_Bool型,因此在 C语言的这一版本中,布尔变量可以声明为
_Bool flag;
_Bool 是整数类型(更准确地说是无符号整型),因此_Boo1 变量实际上就是整型变量;但是和一般的整型不同,_Bool 只能赋值为0或1。一般来说,往_Bool 变量中存储非零值会导是和一般的整型不同,致变量赋值为 1