当前位置:网站首页>Comparison between variable and "zero value"
Comparison between variable and "zero value"
2022-07-06 22:30:00 【It's Beichen not too PI acridine】
Variables and “ Zero value ” Comparison
bool Variables and “ Zero value ” Compare
bool Variables and “ Zero value ” To compare if How to write sentences ?
bool bTestFlag = FALSE;
Think about why bool Variables are generally initialized to FALSE better ?
You can make this boolean variable negative and non-zero , because FLASE Everyone knows the value of , In the compiler, it is defined as 0; but TRUE The value of ? All are 1 Do you ? Unfortunately , Not all of them 1.Visual C++ Defined as 1, And its siblings Visual Basic Just put TRUE Defined as -1. That's obvious FALSE Reverse is TRUE, but TRUE Not after inversion FLASE.
A), if(bTestFlag == 0);
if(bTestFlag == 1);
B), if(bTestFlag == TRUE);
if(bTestFlag == FLASE);
C), if(bTestFlag);
if(!bTestFlag);
Which group or groups are correct ? Let's analyze :
A) How to write it :bTestFlag What is it? ? Integer variables ? If it hadn't been for this name, it would have followed the previous naming conventions , I'm afraid it's easy to misunderstand it as an integer variable . So this kind of writing is not good .
B) How to write it :FLASE Everyone knows the value of , In the compiler, it is defined as 0; but TRUE The value of ? All are 1 Do you ? Unfortunately , Not all of them 1.Visual C++ Defined as 1, And its siblings Visual Basic Just put TRUE Defined as -1. That's obvious , This kind of writing is not good .
Everybody knows if Statements branch and jump by the value of the expression in parentheses behind them . If the expression is true , execute if The code immediately following the statement ; Otherwise, do not execute . That's obvious , This group is well written , It will not cause misunderstanding , Nor because TRUE or FLASE Error due to different defined values of . remember : Write code like this in the future .
Integer variables and “ Zero value ” Compare
Integer variables should be used as “==” or “!=” Direct and 0 Compare .
if (value == 0)
if (value != 0)
// Can't imitate the style of Boolean variables
if (value) // It's misleading value It's a boolean variable
if (!value)
float Variables and “ Zero value ” Compare
float Variables and “ Zero value ” To compare if How to write sentences ?
float fTestVal = 0.0;
A), if(fTestVal == 0.0);
if(fTestVal != 0.0);
B), if((fTestVal >= -EPSINON) && (fTestVal <= EPSINON)); //EPSINON For defined precision .
B Group is correct
Be sure to pay attention to , Whether it's float still double Variable of type , There are limits to accuracy . So you must avoid using floating-point variables with “==” or “!=” Compare it with numbers , We should try to translate it into “> =” or “ <=” form .
Pointer variables and “ Zero value ” Compare
Pointer variables should be used as “==” or “!=” And NULL Compare .
The zero value of a pointer variable is “ empty ”( Write it down as NULL). Even though NULL The value of is equal to 0 identical , But they have different meanings .
Suppose the name of the pointer variable is p, It's a standard to compare it to zero if The statement is as follows :
if (p == NULL) // p And NULL Explicit comparison , emphasize p It's a pointer variable
if (p != NULL)
Don't write as
if (p == 0) // It's easy to be misunderstood p It's an integer variable
if (p != 0)
perhaps
if (p) // It's easy to be misunderstood p It's a boolean variable
if (!p)
Sometimes we may see if (NULL == p) This weird format . It's not a program error , It's the programmer who wants to prevent if (p == NULL) Misspelled if (p = NULL), And intentionally put p and NULL Reverse . The compiler thinks if (p = NULL) It's legal. , But it will point out that if (NULL = p) It's wrong. , because NULL Cannot be assigned .
边栏推荐
- HDR image reconstruction from a single exposure using deep CNNs阅读札记
- Research and investment strategy report of China's VOCs catalyst industry (2022 Edition)
- CCNA Cisco network EIGRP protocol
- Applet system update prompt, and force the applet to restart and use the new version
- 重磅新闻 | Softing FG-200获得中国3C防爆认证 为客户现场测试提供安全保障
- go多样化定时任务通用实现与封装
- 剑指offer刷题记录1
- 2022-07-05 use TPCC to conduct sub query test on stonedb
- [leetcode] 19. Delete the penultimate node of the linked list
- Web APIs DOM 时间对象
猜你喜欢

Adavit -- dynamic network with adaptive selection of computing structure

MySQL数据库基本操作-DML

PVL EDI project case

剑指offer刷题记录1
![[leetcode] 19. Delete the penultimate node of the linked list](/img/ab/25cb6d6538ad02d78f7d64b2a2df3f.png)
[leetcode] 19. Delete the penultimate node of the linked list

3DMAX assign face map

Management background --2 Classification list

Export MySQL table data in pure mode

UE4蓝图学习篇(四)--流程控制ForLoop和WhileLoop

Common sense: what is "preservation" in insurance?
随机推荐
Should novice programmers memorize code?
Management background --5, sub classification
自制J-Flash烧录工具——Qt调用jlinkARM.dll方式
labelimg的安装与使用
MySQL----初识MySQL
leetcode:面试题 17.24. 子矩阵最大累加和(待研究)
如何用程序确认当前系统的存储模式?
i.mx6ull搭建boa服务器详解及其中遇到的一些问题
Leetcode exercise - Sword finger offer 26 Substructure of tree
Senior soft test (Information System Project Manager) high frequency test site: project quality management
变量与“零值”的比较
中国固态氧化物燃料电池技术进展与发展前景报告(2022版)
MySQL教程的天花板,收藏好,慢慢看
[线性代数] 1.3 n阶行列式
Attack and defense world ditf Misc
柔性数组到底如何使用呢?
基於 QEMUv8 搭建 OP-TEE 開發環境
做接口测试都测什么?有哪些通用测试点?
新手程序员该不该背代码?
【踩坑合辑】Attempting to deserialize object on CUDA device+buff/cache占用过高+pad_sequence