gpt4 book ai didi

c++ - 混合 Objective-C 和 C++ 代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:58:29 24 4
gpt4 key购买 nike

我有一个 Objective-C/C++ 应用程序,它使用 C++ 库提供的功能。

其中一个 C++ 类包含这样的枚举:

class TheClass
{
public:
[...]

enum TheEnum
{
YES,
NO,
};

[...]
};

在 Objective-C/C++ 源文件 (*.mm) 中包含(使用 #import - 如果重要的话 -)带有上述类声明的头文件将导致编译失败,因为预处理器会将“YES”替换为术语“(BOOL) 1”(以及“(BOOL) 0”的“否”)。

有没有办法在不重命名枚举值的情况下解决这个问题?

最佳答案

YES and NO are predefined constants在 Objective-C 中,在 objc.h header 中声明。

您应该能够阻止预处理器扩展“YES”和“NO”宏。这可以通过本地 #undeffing 完成他们。

但从技术上讲,如果您使用语言关键字作为标识符,您可能会遇到麻烦。您不会编写一个包含名为 MAX_PATH 的成员的类,对吗?

关于c++ - 混合 Objective-C 和 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1254433/

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