|
|
|
|
|
by rcfox
4842 days ago
|
|
Integer subtraction with a result of 0 sets the same status bit as comparing one value to another, so you can get away without the compare instruction when counting down. It might not sound like a lot, but it can be meaningful in a tight loop. I don't know why the author chose to change the syntactic structure of the loop though, since it hides the point. You have to be careful when counting down though. If you're accessing an array, you might be tempted to do this: for(size_t i = bar_len - 1; i >= 0; --i) {
foo(bar[i]);
}
It looks innocent enough, but size_t is unsigned, so i >= 0 will always be true. (Of course, using -Wall and -Wextra will warn you about this.) |
|