Microchip
直播中

李子跃

8年用户 200经验值
私信 关注
[问答]

输出到特定的数组索引时,sscanf引发异常?

编辑:我想我可能已经明白了。看到下面的响应点,我正在扫描一些ASCII十六进制数字的字符串到数字整数,我正在运行一些特殊的东西。我的目标是采取两个十六进制字符串(4位数字)的ASCII,并将它们转换成16位无符号整数。但是,如果我做了一个索引数组,然后执行下面的操作,它就不会有问题:这就把十六进制数降到了正确的六进制温度(0)和六进制温度(2)。第二个例子?我是不是超越了一些东西,指向了一个糟糕的内存位置?

回帖(2)

李子跃

2019-11-1 14:38:09
是的,%X期望一个无符号整数,在pic32上是32位。问题不是“覆盖前一个整数的第二半”,而是对齐。所有32位整数必须在4字节边界上对齐,16位整数在2字节边界上。hex_temp[0]将(可能但不一定)对齐。4字节边界上的NED,HyxTyPoP(1)不会(或反之亦然,取决于以前的变量声明)。
举报

李皓圳

2019-11-1 14:44:08
这样的东西可以在编译器文档中找到,例如“32位语言工具,库”,第“2.12Input and Output”部分。您可以在编译器安装目录中找到它,例如:C:程序文件(x86)Microchip xC32 v1.42DOCSMPLAB C32图书馆。PDF.它说:“您还可以使用%HX,将其转换成16位值。(类型的大小可以在MPLAB XC32 C/C++编译器用户指南中找到),“8.4个整数数据类型”部分
举报

更多回帖

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