sprintf 会自动追加’\0’至字符串末尾 #define LEN_SERIAL_NUMBER (12) void C_CosemObjMeterInfo::SetSerialNum(U08 u08MeterId, U64 u64SerialNum) { U08 u08tmp[LEN_SERIAL_NUMBER+2] = {0}; memset(u08tmp, 0xFF, sizeof(u08tmp)); // 将缓存置为0xFF sprintf((char *)u08tmp, “%012lld”, u64SerialNum); // 打印12位数据至缓存 memcpy(m_stMeterInfoTbl[u08MeterId].serialNum, u08tmp, LEN_SERIAL_NUMBER); printf(” Update Meter%d’s serial num to %012s ”, u08MeterId, u08tmp); for (U08 j = 0; j < sizeof(u08tmp); j++) { printf(“0x%02x “, u08tmp[j]); } } 打印输出结果如下: Update Meter0’s serial num to 0 0x30 0x39 0x38 0x30 0x32 0x30 0x30 0x30 0x30 0x37 0x30 0x33 0x00 0xff 由输出结果可以清楚地看出,在12位数据之后,自动追加了0x00,即’0’。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/34451.html