我有一个数组static const char*keys[]
。我可以在头文件中将数组声明为
static const Char* keys[] = {
"id",
"ip", // a growing array.
}
还是应该始终在 .c
文件中进行声明?
最佳答案
我认为这可以工作,但是每次将头文件包含在 C 文件中时,都会为新数组分配内存。这意味着您可能会有同一个数组的多个副本。
做我认为你想做的事情的通常方法是:
c文件:
const char* keys[] = {
"id",
"ip", // a growing array.
}
.h 文件:
extern const char* keys[];
这样您就只有一个内存分配,并且可以在其他模块中引用该位置。
另一种方法是使数组静态
(h 文件中没有任何内容)并编写 get 函数来访问字符串。
您采用静态
的理由是什么?
关于c - 在 C 的头文件中声明 static const 变量是否是可接受的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248439/