发新帖我要提问
12
返回列表
打印
[应用方案]

printf打印数据异常的问题

[复制链接]
楼主: mmbs
手机看帖
扫描二维码
随时随地手机跟帖
21
uiint| | 2024-5-8 22:44 | 只看该作者 回帖奖励 |倒序浏览
因为%d在Keil C51中默认代表的是16位的有符号整数,而%bd和%bx分别用来表示8位的有符号和无符号整数。

使用特权

评论回复
22
janewood| | 2024-5-9 21:05 | 只看该作者
在51单片机中,使用printf打印格式化数据时,不能使用%d之类的占位符,而需要使用特定的占位符。

使用特权

评论回复
23
1988020566| | 2024-5-10 15:54 | 只看该作者
通常使用的是8051架构的微控制器,其编译器可能对标准C语言的printf函数进行了特定的扩展或限制。

使用特权

评论回复
24
benjaminka| | 2024-5-12 13:50 | 只看该作者
标准的printf实现依赖于特定的库函数和运行时环境,而这些在资源有限的嵌入式系统中可能不可用或过于庞大。

使用特权

评论回复
25
jackcat| | 2024-5-14 10:48 | 只看该作者
在标准C库中,%d用于有符号整数,%u用于无符号整数,%ld用于长整数

使用特权

评论回复
26
primojones| | 2024-5-14 17:17 | 只看该作者
使用了不正确的占位符,或者占位符与提供的数据类型不匹配

使用特权

评论回复
27
lzbf| | 2024-5-15 17:16 | 只看该作者
对于8位有符号整数,可以使用%bd;对于8位无符号整数,可以使用%bu;对于16位有符号整数,可以使用%hd;对于16位无符号整数,可以使用%hu;对于32位有符号整数,可以使用%ld;对于32位无符号整数,可以使用%lu。同时,还可以使用%x、%X等占位符表示十六进制数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则