是否禁止从Objective-C++类方法体中调用经典C函数?

Eon*_*nil 5 c linker function objective-c++

我经历过Objective-C++的一些奇怪的行为.我有一个Objective-C++类,它在方法体中调用经典的C函数.但是链接器找不到C函数.

我在这里描述了这个问题: 在Objective-C方法体中使用的C函数找不到Xcode打印符号

我通过将Objective-C++类更改为Objective-C类来解决问题,但问题仍然存在.是否禁止在Objective-C++类中调用C函数?

Pau*_*l R 10

您需要确保声明C函数

extern "C"
Run Code Online (Sandbox Code Playgroud)

在适当的.h文件中.

这样做的常见方法是:

//
// foo.h
//

#ifndef __FOO_H__
#define __FOO_H__

#ifdef __cplusplus
extern "C" {
#endif

// ... your interface here - normal C function declarations etc ...

#ifdef __cplusplus
}
#endif

#endif
Run Code Online (Sandbox Code Playgroud)