回调函数如何有效提升命令解析的执行效率?
- 内容介绍
- 文章标签
- 相关推荐
本文共计796个文字,预计阅读时间需要4分钟。
1. 调用函数关于调用函数,在之前的文章《调用函数》中已详细介绍。本文不再赘述,不熟悉的同学请参阅之前的文章《调用函数》。在之前的讲解中,我们使用字符串作为参数进行函数调用。
1、回调函数关于回调函数,在之前的文章《回调函数》已经详解讲解过了,这个文章不再讲解,不太懂的同学请看之前的文章《回调函数》。在之前讲解回调函数中就使用串口作为示例,使用回调函数可以方便封装通讯库,芯片/模块厂家的SDK和部分开源库经常这样做,这样可以实现模块间的解耦,模块化编程。
这篇文章主要讲解回调函数在命令解析中的应用,一般命令中都会有功能码,用于区分这条命令到底执行的什么动作,命令字后面的数据的意义。在这种场景中,使用回调函数是一个不错的选择。
2、经典写法在命令解析中,经典的写法使用switch case语句。这种写法很经典,也很基础,即使是刚学C语言的小白也能看懂。
void poll_task(rt_uint8_t cmd, rt_uint8_t *msg, uint8_t len){ switch (cmd){ case cmd1: func1(); break; case cmd2: func2(); break; case cmd3: func3(); break; case cmd4: func4(); break; default: default_func(); break; } }
他的缺点是,如果在增加一个功能码需要修改poll_task函数,增加case语句。如果要统计功能码的个数,只能手动数。
本文共计796个文字,预计阅读时间需要4分钟。
1. 调用函数关于调用函数,在之前的文章《调用函数》中已详细介绍。本文不再赘述,不熟悉的同学请参阅之前的文章《调用函数》。在之前的讲解中,我们使用字符串作为参数进行函数调用。
1、回调函数关于回调函数,在之前的文章《回调函数》已经详解讲解过了,这个文章不再讲解,不太懂的同学请看之前的文章《回调函数》。在之前讲解回调函数中就使用串口作为示例,使用回调函数可以方便封装通讯库,芯片/模块厂家的SDK和部分开源库经常这样做,这样可以实现模块间的解耦,模块化编程。
这篇文章主要讲解回调函数在命令解析中的应用,一般命令中都会有功能码,用于区分这条命令到底执行的什么动作,命令字后面的数据的意义。在这种场景中,使用回调函数是一个不错的选择。
2、经典写法在命令解析中,经典的写法使用switch case语句。这种写法很经典,也很基础,即使是刚学C语言的小白也能看懂。
void poll_task(rt_uint8_t cmd, rt_uint8_t *msg, uint8_t len){ switch (cmd){ case cmd1: func1(); break; case cmd2: func2(); break; case cmd3: func3(); break; case cmd4: func4(); break; default: default_func(); break; } }
他的缺点是,如果在增加一个功能码需要修改poll_task函数,增加case语句。如果要统计功能码的个数,只能手动数。

