c++ - 将源文件包含在另一个源中

标签 c++ c

我有一个很大的静态常量字节数组,我将很难定义它。最终会产生大约 500 行文本墙类型代码,与文件的正常流程的其余部分相比,这些代码有点碍眼。此外,文件的字节内容可能是由脚本类型解析器生成的。

static const uint8_t largeArray[0x4000]
{
   // About 500 lines of content here.
}

在这种情况下,简单地创建另一个 .c 文件,然后将其简单地包含在我的原始源文件中以使 500 行变成 1 行,这种方式是否可以接受?一般来说,我鄙视将 .c 包含在另一个 .c 中,但我不确定对于这种情况推荐的做法是什么。

static const uint8_t largeArray[0x4000]
{
   #include "ArrayContents.c"  // One line, but not nice file structure.
}

最佳答案

这是可以接受的,并且通常可能发生在大型数组由其他进程生成的情况下,但通常您会希望为文件提供不同的后缀,例如 .hc 而不是 。 c 这样人们就不会混淆它既不是头文件也不是源文件。

另一种方法是将文件内容放在不同的 .c 文件中,只需:

const uint8_t largeArray[0x4000]
{
   // About 500 lines of content here.
}

然后只需在使用它的文件中将其声明为 extern,例如;

extern const uint8_t largeArray[0x4000];

关于c++ - 将源文件包含在另一个源中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26007947/

相关文章:

c - 纯 C 中 .Net Buffer.BlockCopy 的类似物是什么?

c - 递归反转单链表的函数中的段错误

c++ - 如何在没有 deadline_timer boost 的情况下将 boost::asio 代码完全转换为 C++11/asio?

c++ - C++ 中函数的特殊限定符

C++ 继承,调用给定类函数而不是其父类?

c - 如何在c中动态分配静态存储?

c++ - 我是否在发布或析构函数中删除 com 对象的实例数据?

c++ - 后续:使用 boost::spirit::qi 解析带分隔符的数字

c - 外部 "C"错误 #2040 : expected an identifier

c++ - 在枚举中重新声明变量