LINUX.ORG.RU
Ответ на: комментарий от neon1ks

You made my day. Таких людей опасно подпускать к системному программированию, если, конечно, порядок бит в байте flags не должен быть разным в зависимости от endianess, за что надо сильно бить создателей стандарта. Но ничего такого в rfc6844 я не вижу.

grossws
()
Последнее исправление: grossws (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Один компилятор справится, а другой вставит сдвиги даже когда они не нужны. Потому если есть вероятность что они будут использоваться - лучше вставить макросню. Можно runtime-проверку вставить даже чтобы код не запускался при неправильной макросне.
В крупном софте можно положиться и на компилятор, но не надо забывать что это всё будет дольше компилироваться при совпадении порядка байт данных с системным (обычно это little endian) т.к там будет лишняя лапша.
Что мешает сделать

#ifdef BIG_ENDIAN
#define LittleInt(x) (лапша)
#else
#define LittleInt(x) (x)
#endif

ифдеф будет только один, зато не будет этой лапшы.

mittorn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.