0

Functions.h我创建了一个类并在标题中有一些外部方法(认为这就是问题所在)。无论如何,每当我尝试在类实现文件中使用任何类型的 C 风格函数时;即使是空白的,我也会收到编译器/喜欢的错误。我对此很陌生,不明白问题出在哪里。我在想我不能使用该.h文件,但我可以在类文件中使用全局变量和指令。

我应该在哪里声明我的外部函数?在什么样的文件中?

4

2 回答 2

3

我的猜测是您在头文件中完全定义了函数(包括实现),并从多个源文件中包含了它;并且您忘记描述的错误说明了“多个定义”或“重复符号”:

// Header file
void some_function() {
    // do some stuff
}

如果是这种情况,您需要定义移动到源文件中,只在标题中留下声明,因此它们只有一个定义:

// Header file
void some_function();

// Source file
void some_function() {
    // do some stuff
}

声明定义inline,这允许它们包含在多个源文件中:

// Header file
inline void some_function() {
    // do some stuff
}

如果这不是问题,请发布一些示例代码和错误消息,这样我们就不必猜测发生了什么。

于 2013-03-13T18:26:04.253 回答
2

你有c++一个标签。也许这些函数是 C++ 函数,但您正试图从 Obj-C 文件中获取它们?如果是这种情况,您要么需要将它们转换为 C 函数,要么需要使用 Obj-C++(它具有.mm扩展名而不是.m)。

于 2013-03-13T18:19:15.437 回答