cJSON的valueint超过整型范围的问题

需要修改cJSON的源文件,修改cJSON.h的valueint定义改为long long。

将cJSON.c的 (int) 带括号的强制转换改为 替换为 (long long)

修改valueint赋值范围。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 cJSON 是一款轻量级的 JSON 解析与生成库,广泛应用于嵌入式系统和网络编程等 C 语言开发场景中。JSON 是一种轻量级数据交换格式,易于人类阅读和编写,也便于机器解析和生成。cJSON 让 C 语言处理 JSON 数据变得十分便捷。 cJSON 库的核心数据结构主要包括:cJSON_Object,用于表示由键值对组成的 JSON 对象;cJSON_Array,表示包含多个值的 JSON 数组;cJSON_String,表示 JSON 中的字符串类型值;cJSON_Number,表示数值类型值,涵盖整型和浮点型;cJSON_True 和 cJSON_False,分别表示 JSON 中的布尔值 true 和 false;cJSON_NULL,表示 JSON 中的 null 值。该库具备将 JSON 字符串解析为 C 语言数据结构(如 cJSON_XXX 类型)以及将 C 语言数据结构转换回 JSON 字符串的功能,还提供用于遍历和修改 JSON 结构的 API。 在 cJSON 库中,print_number 函数负责将 cJSON_Number 类型的值转换为字符串。不过,默认情况下,该函数在处理浮点数时,尤其是数值极大或极小的情况下,可能会出现精度问题,比如多余的零或精度丢失。为了改善这一点,可以通过修改 print_number 函数中的格式化字符串来调整精度。例如,sprintf(str,"%.9lf",d); 这行代码利用 sprintf 函数将浮点数 d 转换为字符串,其中格式控制符 .9lf 的含义是小数点后保留 9 位数字,l 表示长浮点型(double)。如果需要更高精度,可以将小数点后的位数增加,比如改为 .15lf,这样就能保留 15 位小数;若希望减少小数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值