打开 sheetcam 打开了这个问题 2019 年 8 月 14 日 · 5 条评论 打开 如果您声明具有起始值的指针,Halcompile 会生成不正确的 C 代码#634 sheetcam 打开了这个问题 2019 年 8 月 14 日 · 5 条评论 注释 贡献者 单反相机 评论了 2019 年 8 月 14 日 以下是我重现该问题所遵循的步骤: 在 .comp 文件中声明一个具有起始值的指针变量: variable double *my_ptr = NULL; 这是我期望发生的事情: Halcompile 应在导出函数中生成此代码: inst->my_ptr = NULL; 这是发生了什么: 它生成以下代码: inst->*my_ptr = NULL; 这当然不会编译。 有关我的硬件和软件的信息: 最新的 Git 大师。我没有尝试过以前的版本 贡献者作者 单反相机 评论了 2019 年 8 月 14 日 更正以上信息:此错误出现在 2.7.14。我没有测试大师。 合作者 安迪普 评论了 2019 年 8 月 15 日 这似乎之前没有引起注意,因为之前没有人尝试在声明行中初始化指针。 (添加了 comps 中的指针,以便 mesa_7i65.comp 可以工作) 一个解决方法是在 EXTRA_SETUP 中初始化,或者实际上让它未初始化。 可以说,无论程序员是否这样做,halcompile 都应该自动初始化为 NULL。 贡献者作者 单反相机 评论了 2019 年 8 月 15 日 是的,我猜这是一个边缘案例。正如您所建议的那样,我改为在 EXTRA_SETUP 中对其进行了初始化。 andypugh 自己分配了这个 2019 年 8 月 15 日 成员 杰普勒 评论了 上个星期 请注意,因为整个实例的数据 memset 为 0,这相当于将任何指针变量初始化为 NULL,将任何数字初始化为 0,等等。 成员 杰普勒 评论了 上个星期 (这个,所有位零初始化和 NULL 指针或浮点零值之间的等价性在 C99 标准下并不严格正确,但在 LinuxCNC 运行的任何系统中都是正确的) 免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论 受让人 安迪普 标签 还没有 项目 还没有 里程碑 没有里程碑 发展 没有分支机构或拉取请求 3人参加
以下是我重现该问题所遵循的步骤:
在 .comp 文件中声明一个具有起始值的指针变量:
variable double *my_ptr = NULL;
这是我期望发生的事情:
Halcompile 应在导出函数中生成此代码:
inst->my_ptr = NULL;
这是发生了什么:
它生成以下代码:
inst->*my_ptr = NULL;
这当然不会编译。
有关我的硬件和软件的信息:
最新的 Git 大师。我没有尝试过以前的版本