我有一个头文件,其中声明了一个extern变量.
所以在这个啊文件中看起来会像这样
extern uint16_t externVariable;
Run Code Online (Sandbox Code Playgroud)
所以我有2个.c文件b和c,其中我想访问ah文件中的extern变量.在b和c .c文件中我已经包含了ah文件
当我没有在b中声明变量但在c中声明(没有单词extern)时就是这样的
uint16_t externVariable;
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是当它在b和ci中都有一些编译错误.有什么方法可以解决这个问题吗?
这样做的原因是因为我在.c文件中有代码,我想将代码分成2个不同的.c文件,以获得整洁和清晰.
该变量应仅在一个源代码文件中声明.(b.c示例中的文件).
通过extern在头文件中,甚至在多个.c文件的顶部声明它,你基本上说"变量不在这里,它的外部.但它确实存在,并且它将对你可见."
变量应该只在一个文件中"存活".
如果你试图在多个源文件,它"活"(例如,通过在这两个宣布它b.c和c.c),你会得到你看到的错误.