我读了一些遗留代码:

if ( 1 || !Foo() )

有什么理由不写:

if ( !Foo() )

推荐答案

这两个是一样的.第一个永远不会判断Foo(),因为1使||短路.

为什么这么做——可能有人出于调试目的想强行进入then分支,然后把它留在那里.这也可能是在源代码控制之前编写的,所以他们不希望代码丢失,而只是绕过for now.

C++相关问答推荐

括号中的堆栈实现错误问题

堆栈帧和值指针

为什么sscanf不能正确地从这个字符串格式中提取所有数字?

C中的指针增量和减量(*--*++p)

如何在C中只对字符串(包含数字、单词等)中的数字进行重复操作?

如何在C中使数组变量的值为常量?

Tic-tac-toe:从文件加载存储

为什么我无法访问C语言中的文件

有没有办法减少C语言中线程的堆大小?

带有数组指针的 struct 在print_stack()函数中打印随机数

如果类型是新的,offsetof是否与typeof一起工作?

C中2个数字的加法 - 简单的人类方法

使用替代日历打印日期

GDB 跳过动态加载器代码

为什么程序在打印每个数字之前要等待所有输入?

是什么阻止编译器优化手写的 memcmp()?

与 C 相比,C++ 中无副作用的无限循环的好处是 UB?

仅使用其内存地址取消引用 C 中的 struct

将字节/字符序列写入标准输出的最简单形式

单线程代码中的编译器屏障是否必要?