【问题标题】:Including Source File in Another Source在另一个源中包含源文件
【发布时间】:2014-11-18 10:02:18
【问题描述】:

我有一个很大的静态 const 字节数组,我将很难定义它。这最终得到了大约 500 行文字墙类型代码,这在文件的其余正常流程中有点令人眼花缭乱。此外,文件的字节内容很可能是由脚本类型解析器生成的。

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

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

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

【问题讨论】:

  • 这个c文件中的源代码结构会被其他文件调用吗?还是此文件仅用于包含目的?
  • 如果包含该文件,为什么要给它 .c 扩展名而不是 .h ?

标签: c++ c


【解决方案1】:

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

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

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

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

extern const uint8_t largeArray[0x4000];

【讨论】:

  • 我想我实际上喜欢 extern 的想法,我只需要记住生成的 .h 只是数组大小的#define...谢谢!
猜你喜欢
  • 2010-09-18
  • 1970-01-01
  • 1970-01-01
  • 2012-04-14
  • 2012-10-25
  • 2010-11-28
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
相关资源
最近更新 更多