c - 可以在 C 中打印一串不可打印的字符
问题描述
我有一个低资源微控制器的固件;目前我已将默认预设定义为字符串
#define defaultTypes "211110000" //From ASCII 0 to ASCII 9
然后在主代码中,我使用 sprintf() 将其打印在 RAM 中的缓冲区中,并使用 for 循环读取每个字节,因为每个字节都属于用户可以设置以满足其需求的变量。
现在我需要将其更改为使用从 0x00 到 0xFF 的不可打印字符所以我需要创建一个定义,例如
#define defaultTypes 0x02,0x01,0x01,0x01....
并使用 sprintf() 将其加载到 RAM 缓冲区中,或者您可能有更好的方法。
解决方案
sprintf()
是一个有点奇怪的选择,因为您没有格式化替换要做。相反,您可以使用memcpy()
. 它可能看起来像这样:
uint8_t data[] = { defaultTypes } ; // your 0x01 etc.
memcpy(buffer, data, sizeof data);
推荐阅读
- ios - 故事板中的 Segues 问题
- python - 提交 Flask WTForms 时,如何在不从数据库表中删除这些值的情况下将字段留空?
- javascript - sinon 监视回调
- salesforce - 使用 APEX 每周发送电子邮件模板
- google-apps-script - 一天内服务调用次数过多:urlfetch 尚未打开 Google 表格
- ruby-on-rails - 在这个例子中,为什么服务器发送事件中有一个循环?
- bash - 如何停止 bash 引用引号?
- arrays - 如何将 Go 结构的一部分定义为 JSON 字符串?
- python - 在创建模型时将用户添加到多对多字段
- python - 如何在文本框中包含绘图线型图例的图像