在同一个头文件中声明,初始化和使用全局变量
我实际上尝试使用在头文件(例如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”文件中声明,它将被实例化,并链接到您使用它的所有其他位置。