__FLOAT_BITS macro uses compound literal i think this is the only case where standard c header is not c89 compatible