Использую конструкцию вида:
#if defined(__GNUC__)
#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__ * 10)
#endif
#if GCC_VERSION < 480
#define __builtin_bswap16(x) (x<<8 | x>>8)
#endif
Но что-то мне в ней не нравится. Хэлп. Вид у неё сомнительный?
PS: Последняя редакция (решение):
#if defined(__GNUC__)
#if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ < 8))
static inline uint16_t __builtin_bswap16(uint16_t x)
{
return (x<<8)|(x>>8);
}
#endif /* GCC < 4.8.0 */
#endif /* __GNUC__ */