我正在查看我正在使用的硬件接口的一些示例C++代码,并注意到以下几行中的许多语句:
if ( NULL == pMsg ) return rv;
Run Code Online (Sandbox Code Playgroud)
我敢肯定我听过有人说将常数放在第一位是一个好主意,但为什么呢?是否只是如果你有一个大的声明,你可以很快看到你正在比较什么,或者还有更多吗?
我收到了之前工作过的人的代码,它包含很多行
while(false==find && false == err && k<kmax)
if(true==refract(ep1,ep2,n1,RI_blood, RI_collagen))
Run Code Online (Sandbox Code Playgroud)
我最喜欢的是
if(false == (ret_s<0))
Run Code Online (Sandbox Code Playgroud)
其他代码做得非常好,记录得很好,但是这些奇怪条件的这些线条让我失望了,我想知道为什么他们这样做了.
特别是那false==(ret_s<0)是完全令人困惑的,你需要读三次这样的线来理解他们想要的东西.
这是一种常见的编程风格,难道我不理解其中的推理,还是仅仅是糟糕的风格?
编辑:我觉得这与if(object == NULL)vs if(NULL == object)类似,因为这不是关于意外分配而是关于asfuscated if子句......
我正在阅读一段C++代码,并遇到了类似的代码
if (NULL != threadInfo)
{
...
...
}
Run Code Online (Sandbox Code Playgroud)
我只是想知道使用表达式之间有什么区别
if (threadInfo != NULL)
{
...
...
}
Run Code Online (Sandbox Code Playgroud)
上面说的是什么.读取第一个时读取"如果NULL不等于ThreadInfo",第二个读取"If threadInfo不等于NULL".对我来说,第二个更有意义.
如果我以这种方式比较两个字符会发生什么:
if ('a' == 'b')
doSomething();
Run Code Online (Sandbox Code Playgroud)
我真的很想知道语言(和编译器)在找到这样的比较时会做什么.当然,如果这是一种正确的做事方式,或者我必须使用类似的东西strcmp().
编辑
等待等待.
既然有人不明白我的意思,我决定以另一种方式解释.
char x, y;
cout << "Put a character: ";
cin >> x;
cout << "Put another character: ";
cin >> y;
if (x == y)
doSomething();
Run Code Online (Sandbox Code Playgroud)
当然,在if括号中您可以替换==为任何其他比较运算符.
我真正想知道的是:如何在C/C++中考虑角色?当编译器比较两个字符时,它如何知道'a'与'b'不同?它指的是ASCII表?
可能重复:
这些(bCondition == NULL)和(NULL == bCondition)有什么区别?
Javascript缩小比较语句
我一直在写这样的if陈述:
if(variable1 === 1){}
if(variable2 > 10){}
if(variable3 == "a"){}
Run Code Online (Sandbox Code Playgroud)
但是我记得在某个地方读书(不幸的是我再也找不到那个页面了),这样的if语句写得更好:
if(1 === variable1){}
if(10 < variable2){}
if("a" == variable3){}
Run Code Online (Sandbox Code Playgroud)
将变量放在表达式右侧的位置.
它是否正确?如果是这样,任何人都可以解释为什么这是正确的吗?此外,这适用于所有编程语言,还是只适用于JavaScript?
TIA
我已经看到两种方式都进行了比较.是否有性能差异或仅仅是个人偏好?
我看到它在这个答案中被使用:
[我以为这已经被问到了,但我找不到答案].
当写一个if说法,应该我比较件事对进来的第一或第二?(我特别好奇,都C / C++和Java).
这有关系,还是只是风格?(公约似乎是"先变量,价值第二").
请考虑以下代码:
#include <iostream>
int main() {
int x = 5;
if ( 5 == x ) {
std::cout << "X == 5, true." << std::endl;
}
if ( x == 5 ) {
std::cout << "5 == X, true." << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
哪个输出:
X == 5,为真.
5 == X,是的.
所以不会出现以任何区别.我缺少哪些细微之处?
为什么有些人写而不是:
if(someVar == 0) {}
Run Code Online (Sandbox Code Playgroud)
这个:
if(0 == someVar) {}
Run Code Online (Sandbox Code Playgroud)
有什么不同 ?
谢谢.
请看以下代码: -
if(myVariable==5)
{
//some logic
}
Run Code Online (Sandbox Code Playgroud)
我的一个朋友说,这不是一个很好的方式来编写代码,因为它不是每条指导方针,但他没有任何理由.以上代码或意外修改是否有可能出现异常?据他说,更好的方式
if(5==myVariable)
{
//some logic
}
Run Code Online (Sandbox Code Playgroud)
请让我知道哪个是更好的方式,为什么??? 如果您有任何链接,请提供链接.
c++ ×7
c ×2
if-statement ×2
java ×2
c# ×1
char ×1
coding-style ×1
comparison ×1
constants ×1
javascript ×1
operators ×1