-
- Что-то я туплю. С какого бока там typedef? - SciFi(19.12.2014 11:39)
- На пальцах: Есть, к примеру, UDP буфер. В пакете могут приходить разнообразные структурированные данные. Первый байт буфера - тип данных. Последующие данные представляют структуру того или иного типа. Приводим указатель к типу структуры и Гудвин(163 знак., 19.12.2014 12:02)
- Во-первых, для этого существует union или десериализатор. Во-вторых, кто говорил про #define? В-третьих: SciFi(399 знак., 19.12.2014 12:08)
- А foo и bar память не занимают? Или вы тут профи - не имели дел с MSP со 128 байтами RAM на все-про все? - Гудвин(19.12.2014 12:26)
- Это просто адъ какой-то! Конечно не занимает. Все в сад! - SciFi(19.12.2014 12:32, ссылка)
- С нормальными компиляторами -- таки не занимают. Можно 100500 локальных переменных завести и можно и нужно использовать новую переменную каждый раз как это удобно. Одной из задач компилятора как раз является распределение памяти и регистров между fk0(159 знак., 19.12.2014 12:33)
- Ну нет уж... Я как-нить лениво по-старинке... Появился новый тип данных в следующей версии ПО - опишу в заголовке и заюзаю. Отправлю свежую прошиву народу. Мне так проще и нисколько не парит ваша "неправильность догм". - Гудвин(19.12.2014 12:56)
- И пох мне уровень оптимизации компилятора, его версия и сопутствующие глюки. - Гудвин(19.12.2014 13:00)
- Ну нет уж... Я как-нить лениво по-старинке... Появился новый тип данных в следующей версии ПО - опишу в заголовке и заюзаю. Отправлю свежую прошиву народу. Мне так проще и нисколько не парит ваша "неправильность догм". - Гудвин(19.12.2014 12:56)
- А foo и bar память не занимают? Или вы тут профи - не имели дел с MSP со 128 байтами RAM на все-про все? - Гудвин(19.12.2014 12:26)
- 1) за структуры в UDP нужно отрывать руки. 2) приводим указатель к типу структуры: struct typeofstruct *X = (struct typeofstruct *)pointer_to_anything. Причём здесь define? Зачем typedef? Здесь скорей программирование уровня радиокота и др. fk0(18 знак., 19.12.2014 12:06)
- Ню-ню.. недавно делал интеграцию некой АСУ с процессингом банка. Там вот все такие идиоты, что пользуют структуры и UDP.. вот лохи-то! - POV(19.12.2014 14:52)
- Типичное "у меня всё работает". Последнюю неделю делаю "интеграцию" одной подсистемы большого проекта работающего на нескольких разных железяках. В двух из них -- процессоры MIPS "немного разные". И вот там тоже такой говнокод на уровне API fk0(881 знак., 20.12.2014 00:20)
- Что за поток сознания без аргументов? - POV(20.12.2014 11:38)
- Это у тебя аргумент "мы сделали говнокод --> он работает --> будем дальше говнокодить". Экономические обоснования я выше привёл, лично мне всё понятно и я бы гнал таких говнокодеров подальше. - fk0(20.12.2014 13:45)
- Не "мы" сделали, а меня перед фактом поставили какие данные и как использовать. Это решение банка... POV(345 знак., 20.12.2014 21:14 - 21:25)
- Это же серпом по
яйцамрелигиозным чувствам :-) - SciFi(20.12.2014 21:26)
- Это же серпом по
- Не "мы" сделали, а меня перед фактом поставили какие данные и как использовать. Это решение банка... POV(345 знак., 20.12.2014 21:14 - 21:25)
- Это у тебя аргумент "мы сделали говнокод --> он работает --> будем дальше говнокодить". Экономические обоснования я выше привёл, лично мне всё понятно и я бы гнал таких говнокодеров подальше. - fk0(20.12.2014 13:45)
- Что за поток сознания без аргументов? - POV(20.12.2014 11:38)
- Типичное "у меня всё работает". Последнюю неделю делаю "интеграцию" одной подсистемы большого проекта работающего на нескольких разных железяках. В двух из них -- процессоры MIPS "немного разные". И вот там тоже такой говнокод на уровне API fk0(881 знак., 20.12.2014 00:20)
- Чем тебе UDP насолил? Это просто пакет с моими данными. Теперь, как прохвесианал, расскажи мне - радиокоту, как описать структуры (6 -7 различных структур), чтобы я мог обращаться по указателю к полям структур в этом пакете. Жду... - Гудвин(19.12.2014 12:16)
- Тебе SciFi показал как. typedef по-любому ни к месту. И про union он правильно напомнил. - fk0(19.12.2014 12:28)
- Нельзя обращаться к полям структур в пакете. Точка. Можно только если все участники обмена с одной версией компилятора и железа -- редкое исключение (тем более что ещё много всяких если). Сериализуй. Хоть printf'ом и последующим scanf'ом в fk0(366 знак., 19.12.2014 12:27)
- Кстати, насчет версий компилятора и железа - одни и те же структуры пользую и в MSP, и в меге, и в LPC17, а в PC так вообще дельфЯ (редко VC). Именно всяческие выравнивания в структурах(особливо касается железа MSP), разное железо (от 128 байт RAM Гудвин(424 знак., 19.12.2014 13:25 - 13:34)
- Супермегаговнокод одним словом. - fk0(20.12.2014 00:12)
- Мне по-барабану. - Гудвин(20.12.2014 00:55)
- fk0 точно преувеличивает масштаб проблемы. Трудно ожидать, что endianness и правила выравнивания структур будут так уж неожиданно меняться. А если совсем параноик, то можно добавить assert(). - SciFi(19.12.2014 13:37)
- Блядь, элементарно! Написали код для PC. Завтра его нужно на ARM для андроида сделать. Как пример. Или сменили компилятор. Да и между gcc2.95 и 4.9 боюсь -- дикая пропасть. И если такой говнокод через 10 лет из тумбочки достать, не факт, что fk0(150 знак., 20.12.2014 00:22)
- Супермегаговнокод одним словом. - fk0(20.12.2014 00:12)
- Сэр, не шли бы вы в жопу со своими printf-ами и json-ами... Я как-нить и далее для MSP430f2001 определю несколько типов стрктур и спокойненько их заюзаю... - Гудвин(19.12.2014 12:32)
- Кстати, насчет версий компилятора и железа - одни и те же структуры пользую и в MSP, и в меге, и в LPC17, а в PC так вообще дельфЯ (редко VC). Именно всяческие выравнивания в структурах(особливо касается железа MSP), разное железо (от 128 байт RAM Гудвин(424 знак., 19.12.2014 13:25 - 13:34)
- Ню-ню.. недавно делал интеграцию некой АСУ с процессингом банка. Там вот все такие идиоты, что пользуют структуры и UDP.. вот лохи-то! - POV(19.12.2014 14:52)
- Во-первых, для этого существует union или десериализатор. Во-вторых, кто говорил про #define? В-третьих: SciFi(399 знак., 19.12.2014 12:08)
- ни с какого. типы-то всё равно разные и приводить. typedef может использоваться для совместимости C и C++ -- и там и там после typedef можно одинаково использовать имя типа (в C, без typedef, нельзя, нужно писать struct). Чтоб не путалось с class. fk0(79 знак., 19.12.2014 11:43)
- Вот-вот, и я о том же. - SciFi(19.12.2014 11:55)
- На пальцах: Есть, к примеру, UDP буфер. В пакете могут приходить разнообразные структурированные данные. Первый байт буфера - тип данных. Последующие данные представляют структуру того или иного типа. Приводим указатель к типу структуры и Гудвин(163 знак., 19.12.2014 12:02)
- Что-то я туплю. С какого бока там typedef? - SciFi(19.12.2014 11:39)