我在程序中有一个非常简单的文件系统。
有:main.cpp,其中包括worker.h,worker.h和worker.cpp,其中包括worker.h
worker.h 具有 Header 保护并声明了一些 main.cpp 和 worker.cpp 都需要的变量,并且它具有一些函数声明。
#ifndef __WORKER_H_INCLUDED__
#define __WORKER_H_INCLUDED__
bool x;
int y;
void somefunction( int w, int e );
#endif
通过其他一些线程和谷歌结果,我了解到 Header 保护可以保护您免受单个源文件中的多个包含,而不是多个源文件。
所以我可以期待链接器错误。
我的问题是
为什么只有变量而不是函数有多个定义错误?据我了解,这两者都只在头文件 worker.h 中声明而不定义
如何在没有多定义链接器错误的情况下使 main.cpp 和 worker.cpp 都可以使用 a 变量?