ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
314841 Топик полностью
fk0, легенда (14.03.2012 11:39, просмотров: 146) ответил =AlexD= на Ну что за чушь, конфиг разбирается на лету посимвольно, в экстремальном случае нужен буфер только на 1 (один) символ. Машина состояний рулит.
Дадада, вообще весь компьютер можно представить в виде конечного автомата. Только памяти для хранения состояния нужно не меньше, чем было памяти у ЭВМ. Также и тут. Число состояний будет измеряться переменной на несколько порядков более длинной, чем long long... Это во-первых. Во-вторых практика очень далека от теории. И автор вряд ли может потратить всю оставшуюся жизнь на написание этого автомата и скорей пойдёт традиционным путём. Где будет fifo буфер у "драйвера" UART, символов ~32 (минимум на время достаточное, при данной скорости порта, на обработку одной строки). Потом, отдельная переменная способная целиком вместить одну строку текста. Дробить до символов и битов в конечных автоматах слишком напрасный труд . За ради экономии памяти прямо в ней она будет с помощью strtok(), например, разбиваться на ключевые слова и далее анализироваться. Слишком длинные строки, если они не комментарии, откидывать плохо... Практически -- это символов где-то 128, например (сколько в экран notepad.exe влазит). Вообще идея кромсать строку на месте плохая, если хочется потом сообщения об ошибке выдавать с выводом этой же строки. Тогда нужно ещё памяти на самый длинный токен в посимвольном представлении. В 200 уложиться только-только.
[ZX]