条件运算符的错误防范 为什么有人写 if ( 3 == x ) 而不是 if ( x == 3 ) ? 这是一种防御性编程技巧,叫做 Yoda 条件表达式(Yoda Condition),目的是让编译器帮你发现将 == 误写成 = 的错误。 int x = 5; // 正常写法 if ( x = 3 ) // 把 3 赋给 x,然后判断 x(=3,非零为真),不会报错,但逻辑错误 // Yoda 写法 if ( 3 = x ) // 编译报错!不能对字面量 3 赋值 这个技巧来自 C 语言时代,现代 C++ 中不太需要了,因为:编译器会发警告:大多数编译器对 if ( x = 3 ) 会发 ...
新浪极客前线
4小时前