将变量放入标题与将变量放入源中的区别

Moh*_*nde 3 c header extern

假设我使用变量声明头文件:

int count;
Run Code Online (Sandbox Code Playgroud)

然后在源文件中,我想使用count.我必须声明为:

extern int count
Run Code Online (Sandbox Code Playgroud)

或者我可以在我的源文件中使用它吗?所有假设我都有#include "someheader.h".或者我应该在源文件中声明它?放入count头文件和源文件有什么区别?或者没关系?

Jer*_*ten 7

你只需要一个count变量,对吧?那么这一行:

int count;
Run Code Online (Sandbox Code Playgroud)

count为您定义变量.如果你把它放在多个文件中(通过将它包含在标题中),那么你将拥有多个count变量,每个文件对应一个,并且你会得到错误,因为它们都具有相同的名称.

所有extern关键字都表示count在其他文件中定义了一个变量,我们只是让编译器知道它,以便我们可以在这个文件中使用它.因此,extern声明是您要放在标题中的内容,以供其他文件包含.将int count;定义放在一个源文件中.