gpt4 book ai didi

c++ - 为什么全局const char而不是bool需要 “static”?

转载 作者:行者123 更新时间:2023-12-02 10:26:56 26 4
gpt4 key购买 nike

共享头。

我可以做这个:
const bool kActivatePlayground=false;
当包含在多个文件中时,效果很好。

我不能做到这一点:
const char * kActivePlayground = "kiddiePool";
错误结果:重复的符号。

但这有效:
static const char * kActivePlayground = "kiddiePool";
为什么static需要const char *而不是const bool?另外,我认为static不必要,因为const始终是隐含的static吗?

最佳答案

在C++中,默认情况下const变量具有静态链接,而非const变量具有外部链接。

多个定义错误的原因是

const char * kActivePlayground = "kiddiePool";

创建具有外部链接的变量。

嘿,等等,我不是只是说 const变量默认为静态链接吗?是的,我做到了。但是 kActivePlayground不是 const。它是 const的非 const char指针。

这将按您期望的那样工作:
const char * const kActivePlayground = "kiddiePool";

关于c++ - 为什么全局const char而不是bool需要 “static”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64005630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com