-
- Ну, вот, приплыли... Структура - тип придуманный программистом. Откуда компилятор знает как преобразовывать, что ты там напридумывал. - IBAH(28.08.2018 20:23 - 20:28)
- Структура у вас может отличаться по размеру от интегрального типа, как вы себе представляете преобразование? lloyd(390 знак., 28.08.2018 07:45)
- Точно так же как и любое другое явное или неявное преобразование. Либо дополни до указанно явно типа, либо обрежь до него же. Почему я могу флоат до чара преобразовать а структуру не могу? Хочется меня под локоток поддержать, выдай варнинг. - Codavr(28.08.2018 07:47)
- char и float - это числовые типы и при преобразовании не просто копируется/обрезается память, а вызывается библиотечная функция преобразования типов. lloyd(124 знак., 28.08.2018 07:51)
- И что делает эта магическая функция кроме как обрезает или дополняет? - Codavr(28.08.2018 07:57)
- Проверяет на насыщение, как минимум. Учитывает положительные и отрицательные числа, которые по разному представлены в IEEE 754 и целочисленных величинах. lloyd(81 знак., 28.08.2018 08:19)
- Логично, наверное из соображений единообразия и не позволяет преобразовывать структуры. - Codavr(28.08.2018 08:21)
- Йоперный балет. Вам нужно преобразовать структуру в кусок памяти? Вот и используйте для этого указатель, они для этого и предназначены, зачем плодить сущности. - lloyd(28.08.2018 08:25)
- Опять 25. Давай еще пару раз проедем по той же дорожке -> - Codavr(28.08.2018 08:31 - 08:53, ссылка)
- Йоперный балет. Вам нужно преобразовать структуру в кусок памяти? Вот и используйте для этого указатель, они для этого и предназначены, зачем плодить сущности. - lloyd(28.08.2018 08:25)
- Логично, наверное из соображений единообразия и не позволяет преобразовывать структуры. - Codavr(28.08.2018 08:21)
- Проверяет на насыщение, как минимум. Учитывает положительные и отрицательные числа, которые по разному представлены в IEEE 754 и целочисленных величинах. lloyd(81 знак., 28.08.2018 08:19)
- Я разве сказал, что мне не нравится? Я очень люблю этот вариант и как всякий "быдлокодер" регулярно пользую его уже лет 30. Меня заинтересовал конкретный вопрос. Раньше не возникало потребности в преобразовании типа структур, а тут столкнулся вот Codavr(32 знак., 28.08.2018 07:54)
- А а еще бОльший быдлокодер. Очень часто даже для одного бита флага выделяю целый чар. Проще, знаете ли. Если этих флагов немного, дополнительный расход памяти незаметен. - Yurasvs(28.08.2018 13:34)
- Правильные пацаны пишут bool. Ну и правильные компиляторы выделяют для него 1 байт. Кстати, космик для стм8 выделяет 1 бит... - SciFi(28.08.2018 13:47)
- Ой спасибо молодой человек, с сегодняшнего дня воспользуюсь вашей рекомендацией. Надеюсь тех 128 байтов на борту которые имею мне хватит на все. Правда 84 заняты под буфера... кстати может для простоты буфера сделать интовыми чтобы уж сразу не Codavr(18 знак., 28.08.2018 13:42)
- Но вообще можно взять С++ и определить приведение к числу руками) - lloyd(28.08.2018 07:58)
- А а еще бОльший быдлокодер. Очень часто даже для одного бита флага выделяю целый чар. Проще, знаете ли. Если этих флагов немного, дополнительный расход памяти незаметен. - Yurasvs(28.08.2018 13:34)
- И что делает эта магическая функция кроме как обрезает или дополняет? - Codavr(28.08.2018 07:57)
- char и float - это числовые типы и при преобразовании не просто копируется/обрезается память, а вызывается библиотечная функция преобразования типов. lloyd(124 знак., 28.08.2018 07:51)
- Точно так же как и любое другое явное или неявное преобразование. Либо дополни до указанно явно типа, либо обрежь до него же. Почему я могу флоат до чара преобразовать а структуру не могу? Хочется меня под локоток поддержать, выдай варнинг. - Codavr(28.08.2018 07:47)
- Через указатель: tmp |= *(uint8_t*)&mystruct >> 2; - SciFi(28.08.2018 07:33)
- Ну это тоже объезд на кривой кобыле. Честно говоря я удивлен, компилеру не пох? Если я указываю явное преобразование, то значит ответственность беру на себя, выдай чо просят. - Codavr(28.08.2018 07:40 - 07:45)