在http://channel9.msdn.com/Events/GoingNative/2013/Writing-Quick-Code-in-Cpp-Quickly的 29 分钟标记处, Andrei Alexandrescu 说使用常量时更喜欢 0 并提到硬件知道如何处理它。我做了一些组装,我知道他在说什么以及 CPU 上的零标志
然后他说更喜欢常数 1 而不是 -1。-1 IIRC 实际上并不特殊,但因为它是负数,所以会设置 CPU 上的符号标志。根据我目前的理解,1 只是一个正数,处理器标志上没有任何位,也无法与 0 或其他正数区分开来。
但安德烈说更喜欢 1 而不是 -1。为什么?1 比 -1 更好的硬件有什么作用?