在C++中的正确形式

9 浏览
0 Comments

在C++中的正确形式

可能是重复问题:

这两者之间有什么区别:(bCondition == NULL)和(NULL==bCondition)?

根据这个问题的回答,它说“在比较中将const对象放在左边”比其他方式更好。为什么?

0
0 Comments

C++中出现"Proper form in C++"问题的原因是为了避免"="与"=="错误。如果你想要使用"=="但是错误地输入了"=",而且LHS上的对象是常量,编译器将会报错。例如,if ( 3 == x )if ( x == 3 )更好,因为如果你输入if ( 3 = x )将会得到一个错误,但如果你输入if ( x = 3 )可能会导致一个bug。

解决这个问题的方法是在比较时将常量放在等号的左边,这样如果错误地使用了赋值运算符,编译器将会报错。通过这种方法可以减少因为错误使用赋值运算符而导致的bug。

0
0 Comments

“Proper form in C++”这个问题的出现原因以及解决方法如下:

在C++中,使用合适的语法形式是非常重要的。然而,有些语法形式在现代编译器中已经不再相关,并且会产生警告。一个常见的例子就是在条件表达式中进行赋值操作。这种形式已经不被推荐使用。另外,还有一个关于使用无符号类型的讨论。有人认为使用无符号类型会产生混淆,除非有充分的理由,否则不应该使用无符号类型。然而,如果一个变量的值应该是无符号的,那么就应该使用无符号类型。

因此,解决这个问题的方法是:在C++中避免在条件表达式中进行赋值操作,并且根据变量的值是否应该是无符号的来选择是否使用无符号类型。

示例代码如下:

// 不推荐的形式
int x;
if (x = 5) {
    // do something
}
// 推荐的形式
int x;
if (x == 5) {
    // do something
}
// 使用无符号类型
unsigned int y = 10;

总结起来,编写C++代码时,应该避免使用不推荐的语法形式,特别是在条件表达式中进行赋值操作。同时,根据变量的值是否应该是无符号的来选择是否使用无符号类型。这样可以确保代码的正确性和可读性。

0