《C和C++程序员面试秘笈》——1.5 选择编程风格良好的条件比较语句

    xiaoxiao2023-12-25  17

    本节书摘来自异步社区出版社《C和C++程序员面试秘笈》一书中的第1章,第1.1节,作者: 董山海,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    1.5 选择编程风格良好的条件比较语句

    C和C++程序员面试秘笈考点: 良好的编程风格

    出现频率:

    A.假设布尔变量名字为flag,它与零值比较的标准if语句如下。

    第一种:

      if (flag == TRUE)   if (flag == FALSE)``` 第二种:

      if (flag)  if (!flag)`B.假设整型变量的名字为value,它与零值比较的标准if语句如下。

    第一种:

      if (value == 0)   if (value != 0)``` 第二种:

      if (value)  if (!value)`C.假设浮点变量的名字为x,它与0.0的比较如下。

    第一种:

      if (x == 0.0)  if (x != 0.0)第二种:

      if ((x >= -EPSINON) && (X <= EPSINON))   if ((x < -EPSINON) || (X > EPSINON))``` 其中,EPSINON是允许的误差(精度)。 D.指针变量p与0的比较如下。 第一种:

      if (p == NULL)  if (p != NULL)`第二种:

      if (p == 0)   if (p != 0)``` 【解析】 A的第二种风格较良好。根据布尔类型的语义,零值为“假”(记为FALSE),任何非零值都是“真”(记为TRUE)。TRUE的值究竟是什么并没有统一的标准。例如Visual C++将TRUE定义为1,而Visual Basic则将TRUE定义为-1。因此不可将布尔变量直接与TRUE、FALSE进行比较。 B的第一种风格较良好,第二种风格会让人误解value是布尔变量,应该将整型变量用“==”或“!=”直接与0比较。 C的第二种风格较良好。注意:无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。 相关资源:敏捷开发V1.0.pptx
    最新回复(0)