我很新的C和一般的编程,我试图执行 一个简单的命令语法分析器功能,应做到以下几点:从串行线串口命令解析
读字符并解析了字符串“boot \ n”。 如果我收到此命令,我想通过串行线输出应用程序的名称。 对于“启动AppName \ n”命令,我将使用AppName中给出的名称启动应用程序。 我该如何使用简单的解析器实现这一点,简单来说,我的意思是代码复杂性?
static void parse_input(void)
{
uint16_t i;
char input_buf[30];
char c;
read_character(&c);
if (c == '\n') /* sync character */
for (i=0; i < 20; i++)
{
read_character(&c);
input_buf[i] = c;
}
/* check for string "boot" in input buffer */
/* maybe string compare? */
}
THX
这让很多的风险和不必要的假设。想想看,如果你得到多个换行符,甚至是多个boot \ n消息,或者一个boot \ n后面跟着一些其他的可能会被你的缓冲区卡住一半和一半的东西,它将会失败。 –