Comment by Jtarii

15 hours ago

Never understood that if statement style, it seems to only exist to create subtle bugs.

I think of it as BSD style, though of course it could be suggested/mandated elsewhere -

  [...]Use a space after keywords (if, while, for, return, switch). No braces are used for control statements with zero or only a single statement unless that statement is more than a single line, in which case they are permitted.[0]

As I look, GNU guide is less specific, but examples[1] show the same style.

The good thing is that -Wmisleading-indentation [2] (comes along with -Wall) catches this indentation error.

[0] https://man.openbsd.org/style - happens to be same for at least NetBSD.

[1] https://www.gnu.org/prep/standards/html_node/Syntactic-Conve...

[2] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

It's slightly less lines of code which is nice. I'm someone who prefers terseness so I get it.

However, it's bad. I much prefer the rare, elusive, postfix if:

   goto fail if (condition);

It can create some very readable code when used right, with short and simple conditionals.