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

5
我曾经遇到过Objective-C++的一些奇怪行为。 我有一个Objective-C++类,在方法体中调用了一个经典的C函数。 但链接器无法找到这个C函数。
我在这里描述了这个问题: Xcode打印符号未找到,我的C函数在Objective-C方法体中使用 我通过将Objective-C++类更改为Objective-C类来解决了这个问题,但问题仍然存在。在Objective-C++类中调用C函数是否被禁止?
1个回答

10

你需要确保C语言函数已经声明。

extern "C"

在适当的 .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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接