【问题标题】:How do you share a constant array of strings between files?你如何在文件之间共享一个常量字符串数组?
【发布时间】:2012-02-06 04:42:08
【问题描述】:

自从我实际上编写了直接 c(甚至不是 C++,而是 c),我知道如何使用 extern 关键字在单独的 .c 文件之间共享一个变量,但我不记得了是如何在文件之间共享常量数据?

例如,假设我有这个...(注意,这不是 c 代码(或者如果是,它是一个意外),而是显示我想要的伪代码):

const char const * WEEKDAYS[] = {
    "Sunday",
    "Monday", 
    "Tuesday"
}

现在我正在尝试创建一个指向数据的 char 指针数组。同样,这是常量数据,所以我想直接在标题中定义它,但这就是我无法弄清楚如何做的地方,或者如果这不是你应该做的,你应该仍然在 c 文件中声明它,然后在其他地方包含的标头中使用 extern。

再一次,由于更新、更现代的语言,我不得不处理这个问题已经很长时间了,但希望你能提供帮助。

【问题讨论】:

  • extern const char* const WEEKDAYS[]; 为我工作。请注意,我没有提供数组大小。让我们看看是否有人纠正我们。

标签: c constants extern arrays


【解决方案1】:

与变量相同:

// header
extern const char * const WEEKDAYS[3];

// implementation
const char * const WEEKDAYS[3] = {
    "Sunday",
    "Monday",
    "Tuesday"
};

另外你可能想要const char * const,而不是const char const *,这是无效的语法。

【讨论】:

  • 如果你想在链接模块之间共享仍然没有用 - extern 很好,但数组是重复符号
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 2021-09-16
相关资源
最近更新 更多