在同一个头文件中声明,初始化和使用全局变量

我实际上尝试使用在头文件(例如xh)中初始化的变量,并希望在同一头文件中的内联代码中使用相同的变量。 在另一个文件中修改相同的变量(比如yc)。 我怎样才能做到这一点 ? 我想知道这样做的好方法。

您可以将头文件中的全局变量声明为extern ,然后在代码模块(即“.c”文件)中定义它。 这样,您最终不会遇到链接器抛出的多个定义错误。

因此,例如在头文件中,名为my_global_var的全局可用int将在.h文件中具有如下声明:

 extern int my_global_var; 

然后在单个.c文件中的某个地方定义并初始化它:

 int my_global_var = 0; 

现在,您可以在任何其他包含相应头文件的代码模块中使用my_global_var ,并链接到包含全局变量定义的正确.c文件。

使用extern保留字。

永远不要在’.h’文件中创建变量,这是一个导致错误的不良做法。 相反,在需要使用它们的地方将它们声明为extern ,并将变量本身仅在单个“.c”文件中声明,它将被实例化,并链接到您使用它的所有其他位置。