开源改变世界

解释为什么变量 float ‘value’ 没有被初始化 #1038

推推 grbl 2年前 (2023-01-23) 121次浏览

关闭
doppelhub 打开了这个问题 2016 年 7 月 12 日 · 1条评论

注释

解释为什么变量 float 'value' 没有被初始化 #1038
双中心 评论了 2016 年 7 月 12 日  

你好,我确定这是我自己的误解,但是你能解释一下为什么变量“value”(gcode.c,第 108 行)在发送地址之前没有初始化(“&value”,gcode.c,第 118 行)通过函数“read_float”(gcode.c,第 118 行)?在 nuts_bolts.c 中,函数“read_float”取消引用未初始化的地址。

在尝试确定为什么 grbl 有时无法识别文件开头的 M03 命令时,我发现自己掉进了这个兔子洞。例如,我遇到以下代码的问题:
M03 (spindle on) S5000 (start spindle) G4 P2 (delay) S10000 (spindle full speed) G4 P180 (warm up spindle)

但如果我只是将“M03”更改为“M3”,代码始终有效:
M3 (spindle on) S5000 (start spindle) G4 P2 (delay) S10000 (spindle full speed) G4 P180 (warm up spindle)

我查看了代码(’gcode.c’),它处理前导零……我担心解释器可能会处理前导零来表示八进制,但你将数据类型转换为浮点数,所以这不是’这不是问题。

非常感谢对我的问题或问题的任何想法。

解释为什么变量 float 'value' 没有被初始化 #1038

如果您要在读取变量之前向其写入新值,则没有理由初始化变量。
变量“值”存在,所以它有一个地址,你用 & 得到那个地址,不涉及初始化

喜欢 (0)