在编程中,我们经常用到比较,经常用到的比较类型有布尔型,整型,浮点型,和指针等等。下面是我经常用到的比较语句也推荐大家使用。
比较布尔型是否为TRUE(虽然BOOL也被定义为int型):
if (bResult)
比较整型是否为零:
if (0 == nResult)
推荐将常量值写到前面,主要的原因是,比如上面这一句不小心写成了
if (nResult = 0) //呜呼,将永远为true(这种错误很不方便查找)
比较浮点数是否为零:
if ((x >= EPSINON) && (x <= EPSINON))
浮点数在内存中很多时候是以近似值保存的,虽然说浮点数与零相比较一样可以直接是否与零相等,但是如果一个浮点数相加一个比较大的数之后,再减掉一个数,这个时候的值未必是之前的数,误差会增大。
比较指针是否为空:
if (NULL == p)
NULL被在C++中被定义为0,在C中被定义为((void *)0),这里将NULL写在前头,正如与int比较时0写前头一样的道理,特别还要说有是在delete p前最好作如上判断,另外delete之后将其指向NULL,否则p将是野指针,再次使用时将出错,而且是否为NULL对它没有作用,因为它并没有指向NULL。
if (NULL != p) { delete p; p = NULL; }
在一些大公司里面,经常有这样的规定,而且是硬性要求,毫不夸张的说:你的编程习惯将决定你的水平,除非你是想为代码加密 :)。
本站部分资源收集于网络,纯个人收藏,无商业用途,如有侵权请及时告知!