Functions.h
我创建了一个类并在标题中有一些外部方法(认为这就是问题所在)。无论如何,每当我尝试在类实现文件中使用任何类型的 C 风格函数时;即使是空白的,我也会收到编译器/喜欢的错误。我对此很陌生,不明白问题出在哪里。我在想我不能使用该.h
文件,但我可以在类文件中使用全局变量和指令。
我应该在哪里声明我的外部函数?在什么样的文件中?
Functions.h
我创建了一个类并在标题中有一些外部方法(认为这就是问题所在)。无论如何,每当我尝试在类实现文件中使用任何类型的 C 风格函数时;即使是空白的,我也会收到编译器/喜欢的错误。我对此很陌生,不明白问题出在哪里。我在想我不能使用该.h
文件,但我可以在类文件中使用全局变量和指令。
我应该在哪里声明我的外部函数?在什么样的文件中?
我的猜测是您在头文件中完全定义了函数(包括实现),并从多个源文件中包含了它;并且您忘记描述的错误说明了“多个定义”或“重复符号”:
// 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
}
如果这不是问题,请发布一些示例代码和错误消息,这样我们就不必猜测发生了什么。
你有c++
一个标签。也许这些函数是 C++ 函数,但您正试图从 Obj-C 文件中获取它们?如果是这种情况,您要么需要将它们转换为 C 函数,要么需要使用 Obj-C++(它具有.mm
扩展名而不是.m
)。