)
calc21 — 全部未完成建议修复H1~H61. 概述本次迭代解决了 suggestions.md 中全部 6 项未完成建议H1~H6至此项目扫描建议文档中的 33 项建议A~H 系列全部处理完毕。修复项编号问题类型H1is_assignment与混淆代码审查确认已正确H2line变量未使用代码清理H3rhs初始值冗余代码审查确认已消除H4make install目标缺失新功能H50x/0b单独出现行为异常Bug 修复H6注释#测试覆盖不足测试增强2. 变更清单文件操作说明parse.c编辑删除line变量声明及 2 处引用修复0x/0b单独出现时消耗全部字符Makefile编辑新增install目标.PHONY增加installtest.expr编辑新增 2 个注释测试用例10 # comment、true # commentdoc/suggestions.md编辑H1/H3 标记 ✅ 已修复3. H1 —is_assignment与混淆代码审查确认main.c:40已有*(p1) ! 检查if(*p*(p1)!){*opTOKEN_PLUS_ASSIGN;return1;}当输入x 5时后紧跟*(p1) ! 为假不会误判为赋值。无需修改代码。4. H2 —line变量未使用删除parse.c中已无用的line变量位置改动parse.c:12删除static int line;声明parse.c:44删除line 1;初始化parse.c:62删除line;新行计数5. H3 —rhs初始值冗余代码审查确认 calc17 重构后repl函数中的rhs初始赋值已被清理不再有冗余代码。6. H4 —make install目标install: $(TARGET) install -d $(DESTDIR)/usr/local/bin install -m 755 $(TARGET) $(DESTDIR)/usr/local/bin/calc支持DESTDIR变量前缀默认安装到/usr/local/bin$makeinstall# 安装到 /usr/local/bin/calc$makeinstallDESTDIR/tmp# 安装到 /tmp/usr/local/bin/calc7. H5 —0x/0b单独出现行为异常7.1 改造前输入0x无后续十六进制数字时strtoul返回 0end指向x位置。代码将end回退到input_pos 1导致0被消耗但x留在输入流中继续被解析为标识符x可能产生意外结果。7.2 改造后if(endinput_pos2)end(char*)input_pos2;/* 只有 0x 无数字消耗全部 */将end前移到input_pos 20x整体被消耗后续字符正常解析。8. H6 — 注释#测试覆盖新增 2 个测试用例表达式结果10 # comment10true # comment19. 测试验证$maketestcalc — 测试套件PASS[1](90-18)/315 →39... PASS[122]35# comment → 8PASS[123]10# comment → 10PASS[124]true# comment → 1124passed,0failed,124total10. 建议文档状态至此doc/suggestions.md中全部33 项建议A~H 系列处理完毕系列数量已修复已确认无需修复A严重321H1B中等431H3C轻微330D功能建议431H3E新增541H1Fcalc16990Gcalc19550H汇总642