const char array[] = {set} 以大端存储,我需要小端

标签 c arrays

我正在为 Big Endian 32 位微 Controller 编写 C 语言,我需要在 ROM 中存储字符数组:

const uint8 font_6x8[570] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <space>
0x00, 0x00, 0x5f, 0x00, 0x00, 0x00, // '!'
0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // '"'
... }

const uint8 font_6x6var[665] = {
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // <space>
0x02, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, // '!'
0x04, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, // '"'
... }

等等,用于在图形 LCD 上使用多种位图字体。 我的问题是编译器将这些字节存储在 Big Endian 4 字节集中,这会混淆每个字符,因为它们不是由 N*4 字节组成。

它们应该是const并在ROM中设置,所以我不能真正在代码中反转它们。

有没有办法告诉编译器这些字节需要按 Little Endian 顺序插入。我认为使用 8 位类型会强制执行此操作,但事实并非如此。

最佳答案

如果您使用的是 gcc,请尝试分别使用标志 -mbig-endian-mlittle-endian 来调用它。

关于const char array[] = {set} 以大端存储,我需要小端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21487086/

相关文章:

arrays - swift 3 数组太长,太复杂,无法解决

java - 如何将字符串分成字符数组

c - YUV420 到 RGB 颜色转换错误

C语言求救:How to store strings from a . txt文件转成字符数组?顺便说一句,这个 .txt 文件是从命令行参数读取的。

javascript - 如何从 javascript 中的项目列表创建字典列表?

javascript - jQuery 通过迭代数组来更改 html 文本

javascript - MongoDB 和 Node.js - 将整个模型推送到 ref 数组与推送 id 之间的区别

c++ - DPDK 应用程序可以用 C++ 编写吗?如果可以,是如何完成的?

C:关于typedef和enum

c - 将数据写入.txt文件(C语言)