关闭 get_command()中的冗余调用#144 德里克斯瓦尔德 打开此问题 on Apr 15, 2012 ·3条评论 评论 德里克斯瓦尔德 评论的 on Apr 15, 2012 你好, 我相信这是有原因的,但是我想知道为什么在get_command()中会有多余的调用来扫描命令字符串。 一个典型的结构是这样的: if(strstr(cmdbuffer[bufindw], "N") != NULL) { strchr_pointer = strchr(cmdbuffer[bufindw], 'N'); 其中,对strstr的调用之后是使用相同参数对strchr的调用。只记住第一次呼叫的结果而跳过第二次呼叫不是更有效吗?例如: if((strchr_pointer = strstr(cmdbuffer[bufindw], "N")) != NULL) { 我意识到strchr_pointer是一个全局变量,被多个函数使用,但是据我所知,每当process_commands()真正使用它时,它都会被重新分配。 我知道这并没有太大的开销,因为字符是在字符串的开头找到的(大多数情况下),但是在我看来,函数调用的额外开销是可以避免的。 贡献者 布库比切克 评论的 on May 4, 2012 也许你是对的,但是固件的关键部分在其他地方。自由地做改变,所以我们可以合并它们。 但是请注意,维护马林的工作量很大。 无名小卒 添加的 该 改善 标号 on Apr 13, 2014 贡献者 伯尔 评论的 on Dec 18, 2014 近3年来没有评论等。正在关闭…如果问题仍然存在,则重新打开 伯尔 关闭此为 已完成 on Dec 18, 2014 伯尔 移走 T:功能请求 用户请求的功能。PR:改善 标号 on Jun 29, 2015 吉图亚行动 机器人 评论的 on Apr 15, 2022 此问题已自动锁定,因为在关闭后没有任何近期活动。请为相关错误打开一个新问题。 吉图亚行动 机器人 锁定和限制与协作者的对话 on Apr 15, 2022 喜欢 (0) 如何做一个更轻的x车厢 #143 马林在从原点到终点停止后未正确向上行驶 #145 v1.3.8-EDGE 重启后键盘快捷键消失 #427 关闭 无法在 gsender 1.2.0 中打开 .gcode 文件 #367 RaspberryPi 运行 gsender 时出现问题 #89 向 fluidnc 发送 $$ 会导致 gsender 崩溃 #473 v1.3.8-EDGE 重启后键盘快捷键消失 #427 关闭无法在 gsender 1.2.0 中打开 .gcode 文件 #367RaspberryPi 运行 gsender 时出现问题 #89向 fluidnc 发送 $$ 会导致 gsender 崩溃 #473功能请求:抑制发送到机器的 gcode 中的 gcode 注释。 #444 关闭通过网络连接进行连接 #171操纵杆运动的剩余问题 #204 关闭新版本认为我的机器一直处于锁定状态 #474 关闭
你好,
我相信这是有原因的,但是我想知道为什么在get_command()中会有多余的调用来扫描命令字符串。
一个典型的结构是这样的:
其中,对strstr的调用之后是使用相同参数对strchr的调用。只记住第一次呼叫的结果而跳过第二次呼叫不是更有效吗?例如:
我意识到strchr_pointer是一个全局变量,被多个函数使用,但是据我所知,每当process_commands()真正使用它时,它都会被重新分配。
我知道这并没有太大的开销,因为字符是在字符串的开头找到的(大多数情况下),但是在我看来,函数调用的额外开销是可以避免的。