gpt4 book ai didi

objective-c - 在 objective-c 中使用常量。重复符号问题

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:28 25 4
gpt4 key购买 nike

我有两个带有常量的类。

例如有一个名为 class_a.m 的类包含一个常量 kWidth = 150,

我还有一个名为 class_b.m 的类,它包含一个常量 kWidth = 200

运行我的项目后,出现重复符号错误,但这些文件没有嵌套(我的意思是 class_a 到 class_b 或 class_b 到 class_a)。我也只使用这个 constantin 实现。

来源:

const int kWidht = 150;

错误描述:

ld: duplicate symbol _kWidht...

感谢您的帮助!

最佳答案

如果常量只在那个单一的实现文件中使用,那么你应该在它的声明前加上static。也就是说,把这个:

const int kWidth = 150;

进入这个:

static const int kWidth = 150;

static 关键字告诉编译器该符号仅在当前文件中使用。1 没有它,编译器假定您正在声明一个全局 变量,可以从最终应用程序的任何地方访问。声明两个具有相同名称的全局变量不是一个好主意,因为您无法区分它们,因此编译器会正确地提示。幸运的是,只需通过 static 关键字更明确地说明您的意图,即可轻松解决此问题。


1:更准确地说是“翻译单位”,但"file"对于这个问题来说已经足够了。

关于objective-c - 在 objective-c 中使用常量。重复符号问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043416/

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