Microchip
直播中

李波波

7年用户 206经验值
私信 关注
[问答]

XC16-V1.24-sscanf在解析十六进制值时出错怎么办

我希望,这是这个编译器的支持者阅读的问题:SCASNF的使用不能像预期的那样正常工作!如果输入值是以“0x75ED”形式的十六进制值,则用于解析十六进制值%x的格式说明符返回错误的值。在正常情况下,如C标准,该说明符应该是%x,在某些情况下还可以使用%X。与printf/sprintf格式说明符相比,sscanf的%x和%X之间的参数和结果不应该有差异。添加一个小项目来演示这个问题。希望这个难看的bug能尽快修复!问候汤姆

回帖(4)

骆其节

2020-5-7 09:24:24
我不能用XC16V1.26复制这个问题,也就是说,传统的LIBC不存在这个问题。
举报

李子蕙

2020-5-7 09:39:41
嗨,Calum,谢谢你的答复。很高兴听到,这个问题在当前的XC16版本v1.26中可能会消失。不幸的是,我们正在开发一个项目,我们不能切换到最新的编译器版本,因为有些不兼容性(主要在库中)使这些不可能。暂时!例如,缺少宏,如Min()/Max(),SnSCANF在LIB中没有找到,也缺少ItoA等。
举报

骆其节

2020-5-7 09:48:11
汤姆,最新的编译器版本包含与v1.24相同的库选项,默认值被翻转-我们现在默认到通常用MPLAB C30打包的更标准的libc,因此删除了您提到的非标准函数。您可以继续使用通过X-16打包到-1.25的HiTeC C库,使用-MNO遗产LIBC交换机…我相信有一个MPLAB X检查框。
举报

许莹

2020-5-7 10:00:30
你好,Calumthanks再次回复。如果我们有时间,我们会测试。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分