我不是专业的C程序员,我知道从另一个.c
源文件包含代码被认为是一种不好的实践,但是我有一个情况,我认为这可能有助于维护。
我有一个带有许多元素的大结构体,我使用#define
来保持索引。
#define TOTO_IND 0
#define TITI_IND 1
…
#define TATA_IND 50
static const MyElements elems [] = {
{"TOTO", 18, "French"},
{"TITI", 27, "English"},
...,
{"TATA", 45, "Spanish"}
}
因为我需要通过索引访问结构,所以我需要保持#define
和结构声明同步。这意味着我必须在正确的位置插入新元素并相应地更新#define
。
这很容易出错,我并不是很喜欢它(但考虑到性能,我没有找到更好的解决方案)。
无论如何,这个文件还包含了很多处理这个结构的函数。我也想保持代码的分离,并避免全局变量。
为了让事情“更容易”,我考虑将这个“容易出错的定义”移动到一个单独的.c
源文件中,该文件将只包含此结构。这个文件将成为“危险小心文件”,并将其包含在我的实际“正常功能”文件中。
你对此有什么看法?这是包含.c
源文件的有效情况吗?还有其他更好的处理我的结构的方法吗?
.h
作为文件的后缀名。 - Some programmer dude#define
的C文件中,那么每个文件都会得到自己的数组副本? - Gerhardh