objective-c - Objective-C 类实现中的 C 函数和变量?

标签 objective-c c compiler-construction

我可以像这样在 Objective-C 类实现中定义 c 函数和变量:

@implementation MyViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    cfunction();
}

// variable inside class
NSString *message = @"this is c function inside objective-c class";

// c function inside class
void cfunction() {
    NSLog(@"%@", message);
}

@end

结果

this is c function inside objective-c class

这段代码没有任何警告和错误。
它是有效的 Objective-C 代码吗?
在 Objective-C 类中定义变量和 c 函数是否安全?
是否有关于此语言规范的文档?

最佳答案

是的,这是正确和安全的,但你应该尽量避免它。如果您需要一些 C 函数,请在单独的文件中定义它(并在单独的头文件中声明)。

从技术上讲,Obj-C 是 C 语言之上的薄层,您可以在 Obj-C 源代码的任何位置使用任何 C 功能。但是,您应该遵守编码风格,不要混合使用两种语言。

关于objective-c - Objective-C 类实现中的 C 函数和变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13419112/

相关文章:

ios - 关闭 UIImagePickerController 将 UITabBarController 重置为 0 索引 - iOS

c - 从参数为 4 的 c 函数返回一个字符串

c - UART 16550 和 Linux 内核中的中断

c - 如何将ULONG复制到PUCHAR中

iphone - HTTP连接的 'didReceiveData'方法的讨论

ios - 如何以下列格式向 NSDictionary 添加元素?

objective-c - 在多个文件上设置 viewController 子类的代码是个好主意吗?

compiler-construction - 为什么 Bison (Yacc) 显然无缘无故地打印新行?

.net - 在库 : How to add DLL reference to component when component is located in project hosting the library? 中进行代码内编译

c++ - 在 .o 文件中本地化函数体 block