-
- Прочитал Мущщина состояний. ))) - AlSa(30.04.2014 17:01)
- Написать то можно, разобрать потом написанное гиморно. Или вот из другого файла в начале функции строчка "uint tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;" и это пля в релизе!!! - Codavr(27.04.2014 17:50)
- Нда... И написал-то я стеба ради, а оно вон во что вылилось ...:-)) - Мущщина(27.04.2014 22:44)
- яфшоке - Codavr(28.04.2014 13:31)
- Да, слово "uint" меня тоже напрягает. Нет, штоб написать по человечески - "unsigned int"... Экономят на спичках, кошмар просто, где не надо. А где надо - никакой экономии. Ну вот нафига тратить по 4 символа на переменную, когда вполне достаточно Мущщина(42 знак., 27.04.2014 18:53)
- Достаточно просто unsigned, без int... Про переменные соглашусь. Естесственные имена переменных: i, j, k, l... для целочисленных и a, b, c... x, y, z для вещественных. Переменная вводится ведь как краткая форма записи более громоздкого выражения fk0(104 знак., 27.04.2014 21:28)
- Нет, просто unsigned - не согласен. Эт надо помнить, кто просто unsigned по умолчанию, а зачем грузить память лишней ерундой? - Мущщина(27.04.2014 21:49)
- Для любителей подробного программирования есть PL/1 и COBOL... - fk0(27.04.2014 22:07)
- А для нелюбителей есть Фортран... - Мущщина(27.04.2014 22:22)
- А ещё есть Verilog, в котором есть reg[99:0] для работы ну с ООООчень целыми... - USSR(27.04.2014 22:17,
)
- это вообще-то не язык программирования. ну да ладно. - Mahagam(27.04.2014 22:33)
- Для любителей подробного программирования есть PL/1 и COBOL... - fk0(27.04.2014 22:07)
- Нет, просто unsigned - не согласен. Эт надо помнить, кто просто unsigned по умолчанию, а зачем грузить память лишней ерундой? - Мущщина(27.04.2014 21:49)
- unsigned int - ненадежно. Для этого есть stdint.h - zeleny(27.04.2014 19:15, ссылка)
- Надежно. - Мущщина(27.04.2014 19:25)
- Что же тут надёжного? Размер инта может быть разный на разных МК. А если использовать типы из stdint, то у них размер точно определён. Или у вас какие-то другие критерии надёжности? - Apтём(27.04.2014 20:02)
- Да я вообще как-то редко переносил программы с 8051 на ARM, или там DSP, и обратно. По этой причине меня всегда устраивает тот размер инта, какой имеется в данной среде для данного МК. И совершенно не волнует размер инта для другого МК. И это Мущщина(20 знак., 27.04.2014 20:29)
- у меня наоборот - кучка общих библиотек, которые использовал с 8051/PIC, и теперь на STM32 и даже x86. Осторожность с размером int-a никогда не помешает. - zeleny(27.04.2014 21:22)
- Вот это меня всегда удивляло. Какие могут общие библиотеки у столь разнокалиберных штуковин, стоящих, к тому же, в абсолютно разных устройствах?!:-) И можно ли их после этого называть библиотеками? Это все надумано. Еще можно понять, когда Мущщина(430 знак., 27.04.2014 21:45)
- подсчет CRC/хешей, преобразование BIN<->BCD, modbus, random, аудио (wav/uLaw/ADPCM), еще было что-то, сейчас не помню... - zeleny(27.04.2014 22:17)
- А умножение?! Почему его нет в списке?! :-) Качество аудио на 8051 наверное потрясающее... :-) - Мущщина(27.04.2014 22:29)
- uLaw/ADPCM AVR/STM32 играет/жмет вполне нормально, не говоря про Raw/Wav - zeleny(28.04.2014 00:05)
- STM сожмет, тем более, что жатва там еще та.:-))) Я про 51 спрашивал. Мущщина(1861 знак., 28.04.2014 10:17)
- uLaw/ADPCM AVR/STM32 играет/жмет вполне нормально, не говоря про Raw/Wav - zeleny(28.04.2014 00:05)
- А умножение?! Почему его нет в списке?! :-) Качество аудио на 8051 наверное потрясающее... :-) - Мущщина(27.04.2014 22:29)
- Что мне, (де)кодирование base64, например, под каждый МК заново переписывать? - fk0(27.04.2014 22:09)
- Гы-гы, гуглится за 5 минут. Выкидывай свои либы, пока не протухли :-) - SciFi(27.04.2014 23:21)
- :-)) А там есть что переписывать?! - Мущщина(27.04.2014 22:16)
- подсчет CRC/хешей, преобразование BIN<->BCD, modbus, random, аудио (wav/uLaw/ADPCM), еще было что-то, сейчас не помню... - zeleny(27.04.2014 22:17)
- Надуманно. МК слишком слаб для программ "уровня windows". Для всего прочего надо думать чего делаешь и какие там особенности... POV(109 знак., 27.04.2014 21:27)
- А чтобы про нее никогда больше вспоминать не пришлось, нужно раз и навсегда тайпдефнуть u8/u16/u32/u64 и s8/s16/s32/s64 вместо всяких unsigned long long и прочей подобной "кошерной" херни - MBedder(27.04.2014 21:26)
- Говнокод безусловный по двум причинам: разным процессорам удобней работать с разным размером слова. Во-вторых если тебе уж припёрло фиксированный размер, то выше сказано -- stdint.h. За самодельные типы -- сжигать нужно. Причин к тому тоже fk0(190 знак., 27.04.2014 22:01)
- у меня проект на вертолёте начинался чисто с передачи телеметрии. канал ограничен, данных на передачу прибавляется с каждым днём. мне тут удобнее чётко видеть сколько байт я отвожу под то или иное поле. обороты двигла - тут u16, количество топлива Mahagam(181 знак., 27.04.2014 22:32)
- Отчасти да... наработки любой крупной компании ужасают многократным тайпдефаном когда заебешься понимать, что за тип ты используешь. - POV(27.04.2014 22:05)
- Любители "выжать последний такт" не одобрят: всё-таки на армах int быстрее, чем u8. Тогда уж uint_fast8_t и проч. - SciFi(27.04.2014 21:35)
- Я про typedef, а не про рациональное использование, которое, разумеется, должно однозначно вытекать из особенностей архитектуры конкретного ядра - MBedder(27.04.2014 21:40)
- Ахтунг! Преждевременная оптимизация детектед: "рациональное использование, которое, разумеется, должно однозначно вытекать из особенностей архитектуры конкретного ядра". Ни разу не однозначно. В 95+% случаев нас рать. - SciFi(27.04.2014 21:45)
- И это на фоне "51е - гавно мамонта, плохая архитектура"? Гыгы, сам себя перечитывай иногда хоть ) - POV(27.04.2014 21:47)
- Диалектика, йоптыть :-) SciFi(66 знак., 27.04.2014 21:48)
- Для ногодрыга неплохо... POV(399 знак., 27.04.2014 21:54)
- А разве я говорил, что Си, натянутый на 8051, как перчатка на ногу, - это плохо всегда и везде? Если ресурсы не жмут, то хоть на машину Тьюринга :-) - SciFi(27.04.2014 23:24)
- Та же битовая адресация крайне хороша когда ресурсов мало... POV(151 знак., 27.04.2014 23:29)
- У них же нет МК с памятью больше 128к? А на каждую C-строчку там как бы не 20 байт выходит. Не разбежишься. - fk0(27.04.2014 22:11)
- Ну так и не говорю за серьезные вещи. Всякая херь из серии промышленных контролеров. - POV(27.04.2014 22:16)
- А разве я говорил, что Си, натянутый на 8051, как перчатка на ногу, - это плохо всегда и везде? Если ресурсы не жмут, то хоть на машину Тьюринга :-) - SciFi(27.04.2014 23:24)
- Для ногодрыга неплохо... POV(399 знак., 27.04.2014 21:54)
- Диалектика, йоптыть :-) SciFi(66 знак., 27.04.2014 21:48)
- И это на фоне "51е - гавно мамонта, плохая архитектура"? Гыгы, сам себя перечитывай иногда хоть ) - POV(27.04.2014 21:47)
- Ахтунг! Преждевременная оптимизация детектед: "рациональное использование, которое, разумеется, должно однозначно вытекать из особенностей архитектуры конкретного ядра". Ни разу не однозначно. В 95+% случаев нас рать. - SciFi(27.04.2014 21:45)
- Я про typedef, а не про рациональное использование, которое, разумеется, должно однозначно вытекать из особенностей архитектуры конкретного ядра - MBedder(27.04.2014 21:40)
- Говнокод безусловный по двум причинам: разным процессорам удобней работать с разным размером слова. Во-вторых если тебе уж припёрло фиксированный размер, то выше сказано -- stdint.h. За самодельные типы -- сжигать нужно. Причин к тому тоже fk0(190 знак., 27.04.2014 22:01)
- Вот это меня всегда удивляло. Какие могут общие библиотеки у столь разнокалиберных штуковин, стоящих, к тому же, в абсолютно разных устройствах?!:-) И можно ли их после этого называть библиотеками? Это все надумано. Еще можно понять, когда Мущщина(430 знак., 27.04.2014 21:45)
- у меня наоборот - кучка общих библиотек, которые использовал с 8051/PIC, и теперь на STM32 и даже x86. Осторожность с размером int-a никогда не помешает. - zeleny(27.04.2014 21:22)
- Да я вообще как-то редко переносил программы с 8051 на ARM, или там DSP, и обратно. По этой причине меня всегда устраивает тот размер инта, какой имеется в данной среде для данного МК. И совершенно не волнует размер инта для другого МК. И это Мущщина(20 знак., 27.04.2014 20:29)
- Что же тут надёжного? Размер инта может быть разный на разных МК. А если использовать типы из stdint, то у них размер точно определён. Или у вас какие-то другие критерии надёжности? - Apтём(27.04.2014 20:02)
- Надежно. - Мущщина(27.04.2014 19:25)
- Достаточно просто unsigned, без int... Про переменные соглашусь. Естесственные имена переменных: i, j, k, l... для целочисленных и a, b, c... x, y, z для вещественных. Переменная вводится ведь как краткая форма записи более громоздкого выражения fk0(104 знак., 27.04.2014 21:28)
- "Нет ничего более постоянного, чем временное", "Работает - не трогай" © Народная мудрость :-) - SciFi(27.04.2014 17:51)
- Это даже не мудрость, а истина. Но мне поручено все это тронуть, исправить и дополнить. Явшоке. И самое прикольное никто уже не знает как это работает и плохо представляют что оно делает. - Codavr(27.04.2014 17:56)
- вот и дополняйте: uint tmp0, tmp1,...tmp7, tmp8, tmp9 (и еще сколько вам надо). Если начать переписывать код который "никто уже не знает как это работает и плохо представляют что оно делает" то после переписывания полезут баги, причем неописуемые. 3m(240 знак., 27.04.2014 18:28)
- Дык. Беда в том что для того чтобы добавлять надо разобраться чего же оно делает. Я пока на этапе разборок, а не изменений. - Codavr(27.04.2014 19:48 - 20:08)
- На бумажке изобразить все состояния автомата (возможные значения переменной, которая в switch). Изобразить переходы (когда переменная изменяется) и предшествующие им логические условия, выполняемые на переходах действия (можно вынести в отдельные fk0(741 знак., 27.04.2014 21:57)
- Чем собсно и занимаюсь в настоящий момент. - Codavr(28.04.2014 13:34)
- На бумажке изобразить все состояния автомата (возможные значения переменной, которая в switch). Изобразить переходы (когда переменная изменяется) и предшествующие им логические условия, выполняемые на переходах действия (можно вынести в отдельные fk0(741 знак., 27.04.2014 21:57)
- Дык. Беда в том что для того чтобы добавлять надо разобраться чего же оно делает. Я пока на этапе разборок, а не изменений. - Codavr(27.04.2014 19:48 - 20:08)
- вот и дополняйте: uint tmp0, tmp1,...tmp7, tmp8, tmp9 (и еще сколько вам надо). Если начать переписывать код который "никто уже не знает как это работает и плохо представляют что оно делает" то после переписывания полезут баги, причем неописуемые. 3m(240 знак., 27.04.2014 18:28)
- Это даже не мудрость, а истина. Но мне поручено все это тронуть, исправить и дополнить. Явшоке. И самое прикольное никто уже не знает как это работает и плохо представляют что оно делает. - Codavr(27.04.2014 17:56)
- Нда... И написал-то я стеба ради, а оно вон во что вылилось ...:-)) - Мущщина(27.04.2014 22:44)