-
- Кстати о птичках. А где в gcc lsb и msb? Не в man-е не поиском по инклюдам не находится. - kaf1(28.04.2019 17:21 - 17:23)
- Это в Ардуиновом GCC :) эти два макроса определены в compiler.h так: Ксения(177 знак., 28.04.2019 17:49)
- Когда-то подобные макросы (и не только для первого и второго байтов) применял в CodeVisionAVR, смотрел АСМ, всё было ОК. Попробовал такое в ИАР, там всё это превращается в кучу кода (может сейчас по другому). Думаю это из-за того, что в maleon(112 знак., 29.04.2019 13:59)
- Ну, прямо уж в кучу. Так, небольшая кучка. Макро с адресами оказываются несколько медленнее, чем с данными, но могут применяться слева от знака присваивания. йцукен(3088 знак., 29.04.2019 16:51)
- Я имел ввиду IAR AVR. Для него "куча АСМ-кода" побольше будет. - maleon(29.04.2019 20:30)
- Ну, прямо уж в кучу. Так, небольшая кучка. Макро с адресами оказываются несколько медленнее, чем с данными, но могут применяться слева от знака присваивания. йцукен(3088 знак., 29.04.2019 16:51)
- Извращение какое то. - kaf1(28.04.2019 17:57)
- Извращение вот: #define LOWBYTE(x) x%256 :) - Ксения(28.04.2019 19:19)
- В x86-ассемблере MASM есть операторы (даже не макросы!): LOW, HIGH, LOWWORD, HIGHWORD, LOW32, HIGH32. Как же без этого? - Ксения(28.04.2019 18:58, ссылка)
- Под Windows оно тоже есть в windef.h, только называется иначе - LOBYTE() и HIBYTE(): Ксения(126 знак., 28.04.2019 18:49)
- DWORD_PTR - тоже извращение. Название намекает, что это указатель на uint32_t, но фактически это не так. - йцукен(28.04.2019 20:10)
- Если память не изменяет, это размер самого указателя. Вместе с сегментом. - Скрипач(28.04.2019 20:45)
- Здесь сделано нормально. Это будет работать на любой архитектуре и компиляторе. - kaf1(28.04.2019 18:52)
- DWORD_PTR - тоже извращение. Название намекает, что это указатель на uint32_t, но фактически это не так. - йцукен(28.04.2019 20:10)
- Вся адурина сплошное извращение. - SciFi(28.04.2019 17:58)
- вау, адурина... спасибо, не слышал о таков варианте ) - Kilkennycat(28.04.2019 19:35)
- Когда-то подобные макросы (и не только для первого и второго байтов) применял в CodeVisionAVR, смотрел АСМ, всё было ОК. Попробовал такое в ИАР, там всё это превращается в кучу кода (может сейчас по другому). Думаю это из-за того, что в maleon(112 знак., 29.04.2019 13:59)
- Это в Ардуиновом GCC :) эти два макроса определены в compiler.h так: Ксения(177 знак., 28.04.2019 17:49)
- Кстати о птичках. А где в gcc lsb и msb? Не в man-е не поиском по инклюдам не находится. - kaf1(28.04.2019 17:21 - 17:23)