当前位置:网站首页>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 .
边栏推荐
- 图像的spatial domain 和 frequency domain 图像压缩
- Spatial domain and frequency domain image compression of images
- 如何用程序确认当前系统的存储模式?
- Attack and defense world ditf Misc
- Improving Multimodal Accuracy Through Modality Pre-training and Attention
- Pit encountered by handwritten ABA
- Lora sync word settings
- volatile关键字
- 中国1,4-环己烷二甲醇(CHDM)行业调研与投资决策报告(2022版)
- Heavyweight news | softing fg-200 has obtained China 3C explosion-proof certification to provide safety assurance for customers' on-site testing
猜你喜欢
Common sense: what is "preservation" in insurance?
Heavyweight news | softing fg-200 has obtained China 3C explosion-proof certification to provide safety assurance for customers' on-site testing
AdaViT——自适应选择计算结构的动态网络
A Mexican airliner bound for the United States was struck by lightning after taking off and then returned safely
2022-07-04 mysql的高性能数据库引擎stonedb在centos7.9编译及运行
Config:invalid signature solution and troubleshooting details
PVL EDI project case
关于声子和热输运计算中BORN电荷和non-analytic修正的问题
pytorch_YOLOX剪枝【附代码】
C# 三种方式实现Socket数据接收
随机推荐
Leetcode question brushing (XI) -- sequential questions brushing 51 to 55
Unity3d minigame unity webgl transform plug-in converts wechat games to use dlopen, you need to use embedded 's problem
Attack and defense world miscall
qt quick项目offscreen模式下崩溃的问题处理
【LeetCode】19、 删除链表的倒数第 N 个结点
Adavit -- dynamic network with adaptive selection of computing structure
Gd32f4xx serial port receive interrupt and idle interrupt configuration
A Mexican airliner bound for the United States was struck by lightning after taking off and then returned safely
Netxpert xg2 helps you solve the problem of "Cabling installation and maintenance"
重磅新闻 | Softing FG-200获得中国3C防爆认证 为客户现场测试提供安全保障
How do I write Flask's excellent debug log message to a file in production?
extern关键字
China 1,4-cyclohexanedimethanol (CHDM) industry research and investment decision-making report (2022 Edition)
【编译原理】做了一半的LR(0)分析器
UDP编程
CCNA-思科网络 EIGRP协议
CCNA Cisco network EIGRP protocol
Self made j-flash burning tool -- QT calls jlinkarm DLL mode
HDR image reconstruction from a single exposure using deep CNNs阅读札记
二分图判定