c - 如何在文件之间共享常量字符串数组?

标签 c constants extern arrays

自从我真正直接编写 c(甚至不是 C++,而是 c)并且我知道如何使用 extern 关键字在单独的 .c 文件之间共享一个变量以来,已经有很长一段时间了,但是什么我不记得是如何在文件之间共享常量数据?

例如,假设我有这个...(请注意,这不是 C 代码(或者如果是,那是个意外)而是伪代码来显示我想要的内容):

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

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

同样,由于更新、更现代的语言,我已经很长时间没有处理这个问题了,但希望你能提供帮助。

最佳答案

它与变量相同:

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

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

此外,您可能需要 const char * const,而不是 const char const *,后者是无效语法。

关于c - 如何在文件之间共享常量字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155652/

相关文章:

ios - Objective-C根据IOS设备类型设置常量

c - C 中 extern 关键字的行为

c++ - 将我的对象声明为 extern 会出现 "not declared in this scope"错误

c++ - 我可以使用 mysql_real_connect 连接到服务器而无需使用 MySQL/C 提及数据库吗?

c - 为什么在位溢出的情况下丢弃 MSB?

c - 程序显示用户输入的数据是字母还是数字

java - 如何从主方法(或任何方法)中的args[]初始化java中的常量,例如 "public static final Integer"

c++ - const 引用变量初始化

c++ - 如何从 const 对象(深度)复制 map

c - c 中的二进制转换(到 12 个字符,基数 36,左零填充)