5 ms·
Braces, y'all! This is why you always, always, ALWAYS put braces around your if()s. (I'm not religious about what line the open brace goes on, but I will reje
by DanHulton 13y ago
Braces, y'all!
This is why you always, always, ALWAYS put braces around your if()s.
(I'm not religious about what line the open brace goes on, but I will reject any code review that skips the braces entirely.)
- wmgries 13y agoAlso, you almost never need to use goto.
- chrismcb 13y agoThis isn't goto's fault. A return, or a "finished = true;" or a ton of other code could have had the same result. Using a goto means it is easier to find it than some other similar mistakes.
- bakhy 13y agoAll three of those patterns are something which would lead me to consider is there a more functional-style option available to rewrite the method in question. I'll take a gigantic nested if over a split-end method (multiple exit points) any day of the week ;) But of course, such things cannot be avoided completely, nor will avoiding them magically eliminate all bugs in the universe..
- DanHulton 13y agoHm, and I'm of the opposite opinion. I like methods that fail early. Gigantic if-chains are hella-hard to parse. I should go consult Code Complete again, actually...
- Dewie 13y agoDoes no one use a pretty printer before committing code? Pretty printing would eliminate any doubt as to what code belongs to what if-statement and the like.
- micro-ram 13y agoI use Astyle to enforce both braces and indentation automatically. In VC Pre-Build Event add: Astyle -A1 -j -c -v asterisk.cpp asterisk.h (Sorry asterisks italicize on HN) http://astyle.sourceforge.net/ http://astyle.sourceforge.net/