-
- Может быть есть какой-то простой стиль записи, позволяющий размещать не используемые одновременно переменные по фиксированным адресам, аля UraGun(61 знак., 11.11.2013 21:21)
- не используемые одновременно обычно стараются делать локальными. Если у Вас оно уже получается большое, то или malloc/free, или new/delete, или вручную например так: koyodza(816 знак., 11.11.2013 21:30)
- Давайте я более детально опишу задачу. Есть 255 контроллеров в сети и есть ограниченный объём памяти мастера. Отводим на данные полученные от каждого контроллера и передаваемые каждому контроллеру к примеру 100 байт. Суммарно получается область UraGun(633 знак., 11.11.2013 21:48 - 21:52)
- не используемые одновременно обычно стараются делать локальными. Если у Вас оно уже получается большое, то или malloc/free, или new/delete, или вручную например так: koyodza(816 знак., 11.11.2013 21:30)
- примерно так: koyodza(624 знак., 11.11.2013 21:19)
- Грех uint32_t туда не вживить. Большой грех. :) - Юра(11.11.2013 22:03, )
- Код не переносимый. Endian одно а есть еще выравнивание (aligned). От компилятора и оптимизации еще зависит. Так что можно наступить на грабли. У ТС кажется проблема в том, что хотел переопределять структуры extern-ом а это большое зло. - framer(11.11.2013 21:45)
- Не хотел, просто набрёл на такой спецэффект, решил обсудить законность его использования. Мне тоже не нравятся external. - UraGun(11.11.2013 21:49)
- При extern вообще не будет ошибок компилятора, можно переопределить все что угодно и компилятор ничего не будет говорить. А с чем связана проблема отказаться от extern? - framer(11.11.2013 21:54)
- Вообще-то линкеры могут отслеживать типы (разные линкеры - по-разному). Так что я бы не спешил с выводами. Но если грабли расстелены, то по ним не обязательно ходить. Тем более для особо страждущих есть законный union. - SciFi(11.11.2013 22:01)
- Может. но мне кажется, что линкер не имеет понятия о типах. Линкер привязывает адреса к переменным и функциям а какого они типа не знает. Типы контролируются только компилятором а конструкция ехтерн как раз говорит компилятору, что «ты мол не ищи framer(52 знак., 11.11.2013 22:08)
- Остановлюсь на union. Всем спасибо за подсказки. - UraGun(11.11.2013 22:10)
- Нифига. Точно помню, что линкер Keil C166 ругался на несоответствие типов (предупреждение). С другими не пробовал, ибо повзрослел и перестал говнокодить :-) - SciFi(11.11.2013 22:10)
- Может. но мне кажется, что линкер не имеет понятия о типах. Линкер привязывает адреса к переменным и функциям а какого они типа не знает. Типы контролируются только компилятором а конструкция ехтерн как раз говорит компилятору, что «ты мол не ищи framer(52 знак., 11.11.2013 22:08)
- Вообще-то линкеры могут отслеживать типы (разные линкеры - по-разному). Так что я бы не спешил с выводами. Но если грабли расстелены, то по ним не обязательно ходить. Тем более для особо страждущих есть законный union. - SciFi(11.11.2013 22:01)
- При extern вообще не будет ошибок компилятора, можно переопределить все что угодно и компилятор ничего не будет говорить. А с чем связана проблема отказаться от extern? - framer(11.11.2013 21:54)
- Не хотел, просто набрёл на такой спецэффект, решил обсудить законность его использования. Мне тоже не нравятся external. - UraGun(11.11.2013 21:49)
- Спасибо большое. - UraGun(11.11.2013 21:23)
- А объявить этот юнион анонимным ? Чтобы не писать его имя можно ? - UraGun(11.11.2013 21:22)
- Пардон, вопрос снят за бредовостью. - UraGun(11.11.2013 21:25)
- Может быть есть какой-то простой стиль записи, позволяющий размещать не используемые одновременно переменные по фиксированным адресам, аля UraGun(61 знак., 11.11.2013 21:21)