【发布时间】:2012-08-06 17:08:25
【问题描述】:
我想在单个静态 C 程序中包含一堆数据(例如,图像,还有其他数据,因为我在没有文件的嵌入式平台上工作,所以嵌入在可执行文件中)。
因此,我编写了一个小 img2c,从我的数据文件创建 const 数据,创建一个带有静态 const 数组初始化器的文件以放入闪存(使用 C99 的优秀功能)
我的问题是,我是否应该将它们放入 .h 文件中,就像我多次看到的那样 - 例如 gimp 可以保存为 .h 文件,而不是 .c 文件 - 或者放在 .c 文件中,在标头仅包含 const extern 声明以供进一步引用,而不必包含所有数据并将其全部传递给编译器,并在每次使用时重新声明它?
预处理器宏是不可能的,因为我会引用它们的地址,而不是每次都包含整个数据。
【问题讨论】:
-
顺便说一句,GIMP 可以保存到 C 源文件以及头文件。它在 File->Save As 下并将文件类型更改为 C 源代码。
-
是的,当然。我的评论更多的是,默认情况下,它保存到 .h 这似乎违反直觉。