-
- Патамушта я готовлю массив из генерённых Р0контейнеров. Ну, не только их. Массив из структур с интами. Когда я формирую контейнер, я заполняю поля всяко-разными вычислениями. А в массив кладу как "Р0контейнер.дата", т.е. ИНТ. Я, потом, и работаю с mse homjak(18 знак., 12.02.2019 00:00)
- Да это понятно, что ты с ними как с интами работаешь. Но почему не сразу как с флоатами, а? Откуда ты знаешь, что там в этих интах на какой позиции лежит, а? Вот в этом проблема. Там не только ендианность, там ещё разные компиляторы по-разному fk0(39 знак., 12.02.2019 00:02)
- Ну, сами ГЦЦшники не стесняются имана так формировать битовые поля для настройки процессора. Чо мне бояться? Я чо, рыжий? Или крайний? - mse homjak(12.02.2019 00:06)
- И работает оно только в этой версии GCC и только на этом процессоре. А ты небось начнёшь через сеть сейчас пересылать. - fk0(12.02.2019 00:14)
- Не, не начну. Это умрёт вместе с этим процессором. Я переползаю на новую архитектуру раз в 10-15 лет. - mse homjak(12.02.2019 00:19)
- До того как оно умрёт, существует 100500 причин, почему код может быть собран на другой архитектуре. Начиная от юнит-тестов. - fk0(12.02.2019 01:14)
- Нет таких причин. - mse homjak(12.02.2019 09:47)
- До того как оно умрёт, существует 100500 причин, почему код может быть собран на другой архитектуре. Начиная от юнит-тестов. - fk0(12.02.2019 01:14)
- Не, не начну. Это умрёт вместе с этим процессором. Я переползаю на новую архитектуру раз в 10-15 лет. - mse homjak(12.02.2019 00:19)
- И работает оно только в этой версии GCC и только на этом процессоре. А ты небось начнёшь через сеть сейчас пересылать. - fk0(12.02.2019 00:14)
- Ну, сами ГЦЦшники не стесняются имана так формировать битовые поля для настройки процессора. Чо мне бояться? Я чо, рыжий? Или крайний? - mse homjak(12.02.2019 00:06)
- Да это понятно, что ты с ними как с интами работаешь. Но почему не сразу как с флоатами, а? Откуда ты знаешь, что там в этих интах на какой позиции лежит, а? Вот в этом проблема. Там не только ендианность, там ещё разные компиляторы по-разному fk0(39 знак., 12.02.2019 00:02)
- Да ладно. Вот надо, например, все поля обнулить быстро. - s_h_e(11.02.2019 23:52)
- memset(R0container, 0, sizeof(R0container)). Ещё примеры? Скопировать? Я уже писал: R0container a = b... А ему эта data нужна чтоб своими грязными руками туда лазать и писать говнокод который говном полным ендианности обмажет всё вокруг. - fk0(11.02.2019 23:59)
- С memset оно сразу делается нечитаемо. Если нужно обфусцировать код - ок. - s_h_e(12.02.2019 00:15)
- А у тебя просто говнокод. В юнион data меньшего размера, случайно, чем битовое поле -- что-то не инициализируется и ты этого никогда не узнаешь. - fk0(12.02.2019 01:13)
- Такое в любом юнионе может быть. Не использовать юнионы? Не нужно тогда на сишечке писать, надо брать другой язык. - s_h_e(12.02.2019 09:50)
- Юнионы служат не для замены reinterpet_cast (в конечном счёте, у тебя для memcpy и memset), а для возможности размещения в одной области памяти одного из вариантов типа данных, ну и для ручного (не)вызова конструкторов. Скоро введут сплошной fk0(81 знак., 12.02.2019 12:17)
- Я бы не драматизировал. Юнион - вполне удобный способ для грязных хаков, очевиднее, чем через указатель на байт. Боисся и себе не доверяешь - напиши static_assert. - VLLV(12.02.2019 12:28)
- Чего там грязного? Как иначе пропихнуть слово 32разряда через 8разрядную внешнюю шину? Особенно, если запись определённого байта фиксирует 32р слово в приёмнике. - mse homjak(12.02.2019 13:49 - 13:54)
- Сейчас буденновец или назовет волшебные слова "сериализация-десериализация", ну или шашкой покрошит. - VLLV(12.02.2019 14:51)
- Чего там грязного? Как иначе пропихнуть слово 32разряда через 8разрядную внешнюю шину? Особенно, если запись определённого байта фиксирует 32р слово в приёмнике. - mse homjak(12.02.2019 13:49 - 13:54)
- Я бы не драматизировал. Юнион - вполне удобный способ для грязных хаков, очевиднее, чем через указатель на байт. Боисся и себе не доверяешь - напиши static_assert. - VLLV(12.02.2019 12:28)
- Юнионы служат не для замены reinterpet_cast (в конечном счёте, у тебя для memcpy и memset), а для возможности размещения в одной области памяти одного из вариантов типа данных, ну и для ручного (не)вызова конструкторов. Скоро введут сплошной fk0(81 знак., 12.02.2019 12:17)
- Такое в любом юнионе может быть. Не использовать юнионы? Не нужно тогда на сишечке писать, надо брать другой язык. - s_h_e(12.02.2019 09:50)
- А у тебя просто говнокод. В юнион data меньшего размера, случайно, чем битовое поле -- что-то не инициализируется и ты этого никогда не узнаешь. - fk0(12.02.2019 01:13)
- С memset оно сразу делается нечитаемо. Если нужно обфусцировать код - ок. - s_h_e(12.02.2019 00:15)
- memset(R0container, 0, sizeof(R0container)). Ещё примеры? Скопировать? Я уже писал: R0container a = b... А ему эта data нужна чтоб своими грязными руками туда лазать и писать говнокод который говном полным ендианности обмажет всё вокруг. - fk0(11.02.2019 23:59)
- Патамушта я готовлю массив из генерённых Р0контейнеров. Ну, не только их. Массив из структур с интами. Когда я формирую контейнер, я заполняю поля всяко-разными вычислениями. А в массив кладу как "Р0контейнер.дата", т.е. ИНТ. Я, потом, и работаю с mse homjak(18 знак., 12.02.2019 00:00)