- 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
someone 24.01.2013 09:16 # 0
defecate-plusplus 24.01.2013 09:21 # +3
думаю в том, что DW - double word, а W - word
обычно double word - 4 байта, а word - 2 байта, и поэтому в DW надо на 4 части делить, а не просто поменять местами двухбайтные половины
это если в общем, а как конкретно используется эта поебень - bormand его знает
someone 24.01.2013 09:26 # −1
(Хм... верхний и нижний байт... какой подтекст, а.)
bormand 24.01.2013 10:03 # 0
bormand 24.01.2013 09:31 # 0
someone 24.01.2013 09:37 # +1
http://unixpapa.com/incnote/byteorder.html
bormand 24.01.2013 10:07 # 0
Я так понимаю индейцев проверяет еще и configure, поэтому если индейцы не из двух известных нам племён - все сломается гораздо раньше, еще на этапе конфигурирования (или же configure ее добавит самостоятельно).
roman-kashitsyn 24.01.2013 09:40 # +2
absolut 24.01.2013 09:58 # 0
bormand 24.01.2013 10:18 # 0
dwarf_with_beer 24.01.2013 13:46 # 0
TarasB 24.01.2013 12:03 # 0
dwarf_with_beer 24.01.2013 12:13 # +3
TarasB 24.01.2013 12:58 # +1
defecate-plusplus 24.01.2013 13:00 # 0
roman-kashitsyn 24.01.2013 13:04 # +7
cpu, ты пьян, иди домой
absolut 24.01.2013 13:49 # +8
defecate-plusplus 24.01.2013 15:02 # +7