And my point about __BYTE_ORDER is that it is specific to glibc (and thus that code won't work properly on solaris / bsd / whatever else).