我熟悉C,现在正在学习Objective-C。
我经常使用函数指针
void (*callback)(int*restrict, char*restrict)
这可以在Objective-C中使用吗?特别是结构,如:
struct mytype myvar = {
.first = myCallback;
.second = myCallback2;
}
另外,我希望有像
这样的函数原型void function(int * restrict a, char * restrict b);
char * function (char * a);
...
使用这种风格没有问题吗?
答案 0 :(得分:4)
Clang(Xcode使用的默认编译器)声称C11支持Objective C(参见Language Compatibility)。
这意味着函数指针,限制,结构和声明都将按预期工作。
一句忠告:不要与系统作斗争;它将为您自己创造更多的工作,为您的用户创建不太可靠的软件。程序员应该像水一样。
清空你的思想,变得没有形状,没有形状 - 就像水一样。现在你把水放进杯子里,它变成了杯子;你把水倒进一个瓶子就成了瓶子;你把它放在茶壶里它变成了茶壶。现在水可以流动,也可能会崩溃。是水,我的朋友。
答案 1 :(得分:0)
是强>
您可以使用在Objective-C应用中选择的任何C策略。您仍然需要编写一些Objective-C才能启动UIApplication
(或使用第三方工具为您执行此操作)。
但要记住的一件事是,int
的长度会有所不同,具体取决于计算机,您应明确选择int32_t
或int16_t
或int8_t
如果你真的不想使用抽象这种机器差异的NSInteger
typedef
。