[应用方案] printf打印数据异常的问题

[复制链接]
3351|26
uiint 发表于 2024-5-8 22:44 | 显示全部楼层
因为%d在Keil C51中默认代表的是16位的有符号整数,而%bd和%bx分别用来表示8位的有符号和无符号整数。
janewood 发表于 2024-5-9 21:05 | 显示全部楼层
在51单片机中,使用printf打印格式化数据时,不能使用%d之类的占位符,而需要使用特定的占位符。
1988020566 发表于 2024-5-10 15:54 | 显示全部楼层
通常使用的是8051架构的微控制器,其编译器可能对标准C语言的printf函数进行了特定的扩展或限制。
benjaminka 发表于 2024-5-12 13:50 | 显示全部楼层
标准的printf实现依赖于特定的库函数和运行时环境,而这些在资源有限的嵌入式系统中可能不可用或过于庞大。
jackcat 发表于 2024-5-14 10:48 | 显示全部楼层
在标准C库中,%d用于有符号整数,%u用于无符号整数,%ld用于长整数
primojones 发表于 2024-5-14 17:17 | 显示全部楼层
使用了不正确的占位符,或者占位符与提供的数据类型不匹配
lzbf 发表于 2024-5-15 17:16 | 显示全部楼层
对于8位有符号整数,可以使用%bd;对于8位无符号整数,可以使用%bu;对于16位有符号整数,可以使用%hd;对于16位无符号整数,可以使用%hu;对于32位有符号整数,可以使用%ld;对于32位无符号整数,可以使用%lu。同时,还可以使用%x、%X等占位符表示十六进制数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部