【发布时间】:2013-11-27 23:05:48
【问题描述】:
我在头文件中声明并在源文件中使用的 C 变量的多个定义出现错误。
在我的头文件中,我有:
//Number of jobs in the job list
extern int numberOfJobs;
在我的源文件中,我在多个函数调用中使用了 numberOfJobs。
我的头文件顶部还有一个预处理指令。
#ifndef _JOBS_GROUP_H_
#define _JOBS_GROUP_H_
并以
结束#endif
有人可以向我解释为什么会这样吗?我对 C 还很陌生。
【问题讨论】:
-
你应该在这里发布你的代码来看看发生了什么
-
如果它是外部的,那么你也应该把代码贴在它实际上声明的地方......
-
@K 你的意思是“定义”。它被声明在就在这里。
-
你也应该发布错误信息(复制粘贴,不要重复输入或总结)。
-
您显示的内容看起来是正确的。您应该在一个
.c文件中定义numberOfJobs。.h中的extern声明应该在每个引用它的翻译单元中出现一次;包含警卫应该处理这个问题。该定义需要在整个程序中恰好出现一次。如果可能的话,编写一个小程序(可能是 3 个文件,每行几行)来重现问题,并向我们展示您问题中的那些源文件,以及您正在使用的编译器命令和确切的错误消息。
标签: c variables c-preprocessor