if( a + b >> 1 > x - y * 4 )
と
if( a+b>>1 > x-y*4 )

ではどっちが可読性高いか。(個人的には下。個人的にね)。


たとえば、一行に複数の文を入れるのを嫌う人がいるが、値のスワップにおいては

int tmp = a[i]; a[i] = b[j]; b[j] = tmp; /* a[i],b[j], swap */

と一行で書いてしまったほうが、コードを見渡したとき、全体を把握する際邪魔に
なりにくい場合が多い。もちろんこの場合はマクロにしたほうがいいけどな。