-
- Не совсем понял, ты про одну точку входа под разными именами? Михаил Е.(3130 знак., 10.09.2013 13:32)
- Типа через ( . ) выкрутился. :) Mazur(1195 знак., 10.09.2013 10:12)
- Осторожнее с подчёркиванием первым знаком в именах: SciFi(132 знак., 10.09.2013 10:49)
- только лично я игнорю этот запрет:)(плюсов не использую - тогда забоялся бы:)) - Vit(10.09.2013 10:57)
- Опасно жить не запретишь :-) - SciFi(10.09.2013 10:58)
- только лично я игнорю этот запрет:)(плюсов не использую - тогда забоялся бы:)) - Vit(10.09.2013 10:57)
- А lcd_send_data по-байтовое разве удобно? Скрипач(177 знак., 10.09.2013 10:38 - 10:46)
- strlen(str) можно внутри посчитать:) - Vit(10.09.2013 11:44)
- Да. Но снаружи можно передать размер структуры (или еще чего-то, не заканчивающегося нулем). - Скрипач(10.09.2013 11:47)
- и с непечатаемыми символами:) - Vit(10.09.2013 11:48)
- Да. Но снаружи можно передать размер структуры (или еще чего-то, не заканчивающегося нулем). - Скрипач(10.09.2013 11:47)
- strlen(str) можно внутри посчитать:) - Vit(10.09.2013 11:44)
- Осторожнее с подчёркиванием первым знаком в именах: SciFi(132 знак., 10.09.2013 10:49)
- Вот про что я говорил, (обновление дисплея пока еще не сделал, посимвольно, скажем раз в 1 мс): Mazur(1568 знак., 10.09.2013 09:30)
- Тупая модификация, без анализа логики. Bill(2417 знак., 10.09.2013 14:08 - 14:13)
- Не понимаю, в чем проблема? - Скрипач(10.09.2013 10:35)
- Это сейчас одна и та же строчка. Различия только в устанавливаемых состояниях. А бывает есть несколько строчек одних и тех же. Вот и хочется как-то сделать их в одном месте и общую точку входа в это место. На асме это легко делается. Сейчас кроме Mazur(24 знак., 10.09.2013 11:02)
- Вызов функции с одинаковыми параметрами? - Скрипач(10.09.2013 11:08)
- Это сейчас одна и та же строчка. Различия только в устанавливаемых состояниях. А бывает есть несколько строчек одних и тех же. Вот и хочется как-то сделать их в одном месте и общую точку входа в это место. На асме это легко делается. Сейчас кроме Mazur(24 знак., 10.09.2013 11:02)
- default можно вписать перед верхним case и без break. clr_dsp_buf без () очень ёмко. - Vit(10.09.2013 09:44)
- clr_dsp: Mazur(254 знак., 10.09.2013 09:47)
- Когда рука тянется к "define" напиши "inline" :) Замените макрос функцией (можно inline). Макросы очень небезопасный механизм. Эта ваша ";" в макросе может неслабо "икнуться". - Скрипач(10.09.2013 10:32)
- Сделал инлайн, получил что хотел и линейкой по рукам за это получать не буду. :) - Mazur(10.09.2013 11:46)
- А с другой стороны. Почему за это ругаетесь, если скомпилировано и работает? Mazur(225 знак., 10.09.2013 11:49)
- Повторяю в 100500 раз: надо не в дизассемблере ковыряться, а создавать работающую программу. Причём с вменяемым исходником. А эти ваши инлайны никакого отношения к созданию рабочей программы не имеют, то есть отвлекают от дела, причём самым SciFi(156 знак., 10.09.2013 12:37 - 12:40)
- Дело-то не в inline, дело в самом программисте. Или нет? - Bill(10.09.2013 13:05)
- Ну так я пытаюсь быть вежливым, поэтому не перехожу на личности :-) - SciFi(10.09.2013 13:06)
- Дело-то не в inline, дело в самом программисте. Или нет? - Bill(10.09.2013 13:05)
- Повторяю в 100500 раз: надо не в дизассемблере ковыряться, а создавать работающую программу. Причём с вменяемым исходником. А эти ваши инлайны никакого отношения к созданию рабочей программы не имеют, то есть отвлекают от дела, причём самым SciFi(156 знак., 10.09.2013 12:37 - 12:40)
- А с другой стороны. Почему за это ругаетесь, если скомпилировано и работает? Mazur(225 знак., 10.09.2013 11:49)
- Да там этот макрос нафиг не нужен. Любой вменяемый человек знает, что такое "memset(buffer, ' ', sizeof(buffer));". SciFi(60 знак., 10.09.2013 10:51)
- Указкой жестоко. Линейкой :) Скрипач(133 знак., 10.09.2013 10:58)
- Если используется более чем в одном месте, то да, так как дублирование кода - это зло. Иначе - лишнее телодвижение. - SciFi(10.09.2013 11:03)
- Ибо HAL. При проектировании "сверху - вниз" никто не опускается до подсчета вызовов :) - Скрипач(10.09.2013 11:12)
- Не всегда. Иногда код тот же самый, а объединять в функцию -- та самая преждевременная оптимизация, известно чем кончающаяся. Вообще такими штуками компилятор умеет заниматься. - fk0(10.09.2013 11:05)
- Да у него C вообще отобрать нужно. Слишком много вольности. В Паскале (с объектами) написал бы нормально, в ОО стиле, с методом clear и все дела. А C и C++ это два перегиба в разные стороны. В одном слишком мало нормальных средств и слишком много fk0(73 знак., 10.09.2013 11:03)
- Я уже писал где-то, что его нужно научить использовать printf. Зачем вообще этот "драйвер"? - Vladimir Ljaschko(10.09.2013 11:08)
- Printf низзя, sprintf можно ;) - Гyдвин(10.09.2013 11:23)
- Это нам нельзя ;) - Vladimir Ljaschko(10.09.2013 11:33)
- Да без этого вашего жырного printf любой проект влезает в Atmega8. А с printf перестаёт влезать в AT91SAM7X256. - fk0(10.09.2013 11:20)
- "Parole, parole, parole..." ;) - Vladimir Ljaschko(10.09.2013 11:22)
- Вот-вот. Вроде бы уговорили его переходить на Си, а он упорно кодит на ассемблере, только сишными буковками. Контрреволюционер :-) - SciFi(10.09.2013 11:10)
- Printf низзя, sprintf можно ;) - Гyдвин(10.09.2013 11:23)
- Я уже писал где-то, что его нужно научить использовать printf. Зачем вообще этот "драйвер"? - Vladimir Ljaschko(10.09.2013 11:08)
- Если используется более чем в одном месте, то да, так как дублирование кода - это зло. Иначе - лишнее телодвижение. - SciFi(10.09.2013 11:03)
- Любой профессионал библиотечных функций не использует! - fk0(10.09.2013 10:53)
- Указкой жестоко. Линейкой :) Скрипач(133 знак., 10.09.2013 10:58)
- Сделал инлайн, получил что хотел и линейкой по рукам за это получать не буду. :) - Mazur(10.09.2013 11:46)
- о ";" в макросах уже писали. без скобок выглядит как вызов функции с ошибкой (опиской), которая скорее дала бы warning, а не error - Vit(10.09.2013 10:06, ссылка)
- Когда рука тянется к "define" напиши "inline" :) Замените макрос функцией (можно inline). Макросы очень небезопасный механизм. Эта ваша ";" в макросе может неслабо "икнуться". - Скрипач(10.09.2013 10:32)
- clr_dsp: Mazur(254 знак., 10.09.2013 09:47)
- Таки в функцию но... язык C крайне убог. В паскале, например, есть вложенные функции (имеющие доступ к переменным и функциям объемлющей функции, разумеется). В lisp, javascript, perl... аналогично. Даже в tcl (через upvar или uplevel). В C же fk0(584 знак., 09.09.2013 23:38)
- Вообще-то идентичный код принято выносить в функцию. - SciFi(09.09.2013 22:37)
- Облачить "идентичные участки" в функцию. Для очистки совести, inline функцию. - Скрипач(09.09.2013 22:37)
- Вот не надо этих вредных советов про inline. Все куда-то спешат, всё время опаздывают. Это всё от нервов. - SciFi(09.09.2013 22:39)
- Вы правы. Но он вполне уместен для маленьких функций. Типа: "Когда рука тянется к "define" напиши "inline" :) Скрипач(104 знак., 10.09.2013 08:47)
- Если рука тянется, то нужно лечиться. Я вот кагбэ и пытаюсь лечить :-) - SciFi(10.09.2013 09:51)
- Вы правы. Но он вполне уместен для маленьких функций. Типа: "Когда рука тянется к "define" напиши "inline" :) Скрипач(104 знак., 10.09.2013 08:47)
- Вот не надо этих вредных советов про inline. Все куда-то спешат, всё время опаздывают. Это всё от нервов. - SciFi(09.09.2013 22:39)