Very unorthodox placement of if-else clauses in C for handling special cases I've encountered a situation with an if-else clause. Specifically, the positive case has only 1 expression, whereas the negative case is a sequence of statements wrapped in braces. Like this:
if( i &gt;= list-&gt;count ) *result = 0; else
{
    *result = i * 32 + 31;
    while( mask &gt;&gt; (*result % 32) ) (*result)--;
}

I personally don't see this as bad formatting, as it's common to see something like this in POSIX shell scripts:
if [ &quot;not-null-string&quot; ] ; then
    # the &quot;then&quot; clause didn't start on a new line
    commands &gt;redirections | pipeline
fi

And sometimes, the condition can be even more complex in shell scripts (at least, I may write that way if I see fit and logically intuitive)
But I know, the better style of writing that if-else clause should be like this:
if( i &lt; list-&gt;count )
{
    *result = i * 32 + 31;
    while( mask &gt;&gt; (*result % 32) ) (*result)--;
}
else *result = 0;

So is there some kind of strong arguments against if-else clause formatting such as that in my first fragment of C code?
I would say that the strong argument against the first example is that the else block starts right below the if and can be confused with a then block at first sight.
It's not about the order of the clauses, but only about formatting.
This is has the same condition and clauses, but it's not ambiguous:
if( i &gt;= list-&gt;count )
    *result = 0;
else
{
    *result = i * 32 + 31;
    while( mask &gt;&gt; (*result % 32) ) (*result)--;
}

That said, I would personally prefer this formatting (though this second rewrite is less important and more subjective than the previous one):
if( i &gt;= list-&gt;count )
    *result = 0;
else {
    *result = i * 32 + 31;
    while( mask &gt;&gt; (*result % 32) )
        (*result)--;
}