我在我的标题中声明的 C 变量的多个定义出现了错误,并且正在我的源文件中使用。
在我的头文件中,我有:
//Number of jobs in the job list
extern int numberOfJobs;
在我的源文件中,我在多个函数调用中使用了numberOfJobs。
我的头文件顶部还有一个预处理指令。
#ifndef _JOBS_GROUP_H_
#define _JOBS_GROUP_H_
并以
结束#endif
有人可以向我解释为什么会这样吗?我是 C 的新手。
答案 0 :(得分:0)
我发现为什么我的外部变量会出现多个定义错误/未定义的引用错误。
首先导入“jobsgroup.h”并对我得到的错误产生影响。使用引号导入时出现多个定义错误,但在使用<>时出现未定义的引用错误。当文件位于同一目录中且<>时,使用“”表示如果文件位于包含文件夹中。我的头文件位于include文件夹中,因此使用<>在我的情况下更为可取。
现在这个问题的真正解决方案是我想通过在我的init函数中定义我的变量来定义extern变量。但是,要定义extern变量,必须将其声明在源文件中的函数之上,如下所示:
int numberOfJobs;
这解决了我的所有错误。谢谢你们试图帮助我。