Буду занудой: я и не говорил, что тут проблема. Но посыпать голову пеплом не буду
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bialix 28 июля 2003 г. 18:02
В ответ на: я не понял в чем проблема ? Берем указатель на const char , и передаем в ф-цие его, но увеличенный на целое число. Это нормально и в С и С++. Жду раскаяния и посыпания головы пеплом :-) отправлено DASM 28 июля 2003 г. 17:42

поскольку не врубаюсь в логику работу твоего примера.
Если в функцию 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