|
поскольку не врубаюсь в логику работу твоего примера.
Если в функцию P передается указатель на const char, то следовательно эта функция собирает из отдельных частей какую-то строку. К сожалению ты не скопировал через ctrl+с ctrl+v свой оригинальный код, а восстановил его по памяти:
1: for(;P("\n"),R-;P("|"))
2: for(e=C;e-;P("_"+(*u++/8)%2))
3: P("| "+(*u/4)%2);
В 1й строке, наверное, должно быть R-- а не просто R-
аналогично во 2й строке д.б. e-- а не просто e-
Исходя из этих непоняток мне непонятно как читать во 2й строке P("_"+(*u++/8)%2) или P("_?"+(*u++/8)%2)
хотя тут большой сложности и нет - можно передать и указатель на \0.
Гораздо более занимательным является проверка бита посредством конструкции (u/8)%2. Поскольку язык Си дает нам достаточнуюгибкость мышления, то я бы наверное тоже самое написал бы по-другому. И еще бы попытался соптимизировать под конкретный микрконтроллер. Но это ничего не значит в итоге, если программа работает надежно. :-)
E-mail: info@telesys.ru