MCU_C语言学习笔记之关键字_bool变量与零值比较,float变量与零值进行比较,if使用的一些注意事项

本文是关于C语言中关键字`bool`类型的变量与零值比较的注意事项,强调不应直接将`bool`变量与`TRUE/FALSE`值比较,而应使用`if(bTestFlag)`或`if(!bTestFlag)`形式。此外,还提醒了在浮点数与零值比较时,应考虑精度问题,避免直接与`0.0`比较,而是用精度范围判断。最后,作者提出了良好的编码风格实践,如避免在`if`语句后加分号导致空语句。
摘要由CSDN通过智能技术生成

/*****************************************************************************************************************************************

*Author:JYW

*Time:2019_02_15

*Describe:学而记之进而习之

*****************************************************/

以下为C语言深度剖析的学习笔记

bool  bTestFlag   = FALSE;//FLASE的值在编译器里被定义为0;

         如果if(bTestFlag == 0);       if(bTestFlag == 1);这种写法很容易会让人误会成整型变量;

          如果if(bTestFlag == TRUE);  if(bTestFlag == FLASE);FLASE的值在编译器里被定义为0;但TURE的值在不同的编译器里并不完全是1;Visual C++定义为1,而Visual Basic 把TRUE定义为-1.故这种写法也不好。

if(bTestFlag);    if(!bTestFlag);

if语句是靠其小括号里面的表达式的值来进行执行的,如果为真的话就会执行后面的代码,如果为假的话就不会执行后面的代码;if(bTestFlag);    if(!bTestFlag);这样写既不会引起误会,也不会由于TRUE或FLASE的定义不同而出错了,以后的代码就要

这样写;

float 和double类型的数据都是有精度限制的,显然

不能拿来直接与0.0进行比较,EPSINON 为定义好的精度,如果一个数落在[0.0-EPSINON,  0.0+EPSINON]这个闭区间之内,我们可以认为在这个精度内它的值与零值相等;

//定义指针一定要同时初始化;NULL的值和0一样

p不是整型变量,也不是bool变量;

这个样子写是怕漏写一个“=”号,

if(p = NULL);这个表达式编译器认为是正确的,但却不是我们要表达的意思;

 

书写要规范化;具有良好的书写敲击规范;

if语句的后面不需要分号,如果不小心加了个分号,编译器并不会提示出错,编译器会把这个分号解析成一条空语句;

这两个是等效的;

所以建议在真正需要用空语句时写成这样:NULL;

使用if语句时的其他注意事项:先处理正常情况,再处理异常情况;确保if和else没有弄反。。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值