gpt4 book ai didi

objective-c - math.h 默认包含在 Objective-C 中

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:24 24 4
gpt4 key购买 nike

我有一个多平台项目,现在可以在 Windows、Linux 和 iOS 上运行,但我偶然发现了 Objective-C 的一个不良问题。

不幸的是,我为我的一种类型选择了名称 exp(表达式,考虑到我的代码中出现的次数,这是非常合理的),但是 Objective-C 以某种方式包含了 math .h 默认 header ,造成名称冲突。

我试图注释掉 .pch 中的所有内容(默认包含在每个源文件之前的前缀文件),并且 exp 仍然被标记为重新定义。

有人知道如何在 Objective-C 项目的源文件中包含 math.h 吗?

最佳答案

Objective-C 没有正式的规范,但它继承了 C 的特性。在 C 中,程序不应该使用标准头文件中的标识符,即使它们不包含这些头文件。因此,您不应将“exp”用作您自己的标识符。

如果您坚持使用“exp”,您或许可以使用预处理器语句解决此问题:

#define exp MyExp

这将允许您在源代码中编写“exp”,就好像它是您的标识符之一一样。由于预处理器会将其更改为“MyExp”,因此编译器会将“MyExp”视为标识符并且不会报错。

这会导致很多问题,例如标识符在目标代码信息和调试工具中显示为“MyExp”,导致以后无法使用 math.h 中的 exp。

关于objective-c - math.h 默认包含在 Objective-C 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11881895/

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