gpt4 book ai didi

c - 将 C 中的静态结构导入 Objective-C 有什么影响?

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:53 25 4
gpt4 key购买 nike

我正在调试遗留应用程序并遇到以下情况

LegacySource.h
cFunctionModifyingSomeVariable()

LegacySource.c
static struct someVariable; //a custom struct


ObjectiveCImplementation.m
#import LegacySource.h
-(void)workWithLegacy {
cFunctionModifyingSomeVariable(); // modifies variable declared in C class
}

将 C 中的静态结构导入 Objective-C 有什么影响?

我所有的 Objective-C 类是否共享同一个静态结构实例,还是每个实例都有自己的实例?换句话说,如果我创建 3 个 ObjectiveCImplementation 实例,它们会修改同一个变量,还是它们的效果会相互独立?

最佳答案

Objective-C 代码根本无法使用 someVariable。它只是调用一个函数。静态结构不会“导入”到 Objective-C 中,无论这意味着什么。

在任何情况下,变量 someVariable 都是单数的。只有一个这样的变量。无论从何处调用 cFunctionModifyingSomeVariable(),它仍然仅适用于该一个变量。该 C 函数不知道 Objective-C 类的实例,或者更一般地说,不知道它的调用者的任何信息,因此它的行为不会因此而有所不同。

关于c - 将 C 中的静态结构导入 Objective-C 有什么影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55664581/

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