- 1
- 2
- 3
- 4
- 5
- 6
- 7
#if __BYTE_ORDER == __BIG_ENDIAN
struct DWstruct { Wtype high, low;};
#elif __BYTE_ORDER == __LITTLE_ENDIAN
struct DWstruct { Wtype low, high;};
#else
#error Unhandled endianity
#endif
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+133
#if __BYTE_ORDER == __BIG_ENDIAN
struct DWstruct { Wtype high, low;};
#elif __BYTE_ORDER == __LITTLE_ENDIAN
struct DWstruct { Wtype low, high;};
#else
#error Unhandled endianity
#endif
glibc, sysdeps/wordsize-32/divdi3.c
думаю в том, что DW - double word, а W - word
обычно double word - 4 байта, а word - 2 байта, и поэтому в DW надо на 4 части делить, а не просто поменять местами двухбайтные половины
это если в общем, а как конкретно используется эта поебень - bormand его знает
(Хм... верхний и нижний байт... какой подтекст, а.)
http://unixpapa.com/incnote/byteorder.html
Я так понимаю индейцев проверяет еще и configure, поэтому если индейцы не из двух известных нам племён - все сломается гораздо раньше, еще на этапе конфигурирования (или же configure ее добавит самостоятельно).
cpu, ты пьян, иди домой