实际上,我正在尝试使用一个在头文件(比如x.h)中初始化的变量,并希望在同一个头文件的内联代码中使用相同的变量。相同的变量在另一个文件(比如y.c)中被修改。我该怎么做呢?我想知道做这件事的好方法。
发布于 2011-06-30 02:33:50
您可以在头文件中将全局变量声明为extern,然后在代码模块(即".c“文件)中定义它。这样你就不会因为链接器抛出多个定义错误而结束。
例如,在您的头文件中,一个名为my_global_var的全局可用的int将在一个.h文件中包含一个声明,如下所示:
extern int my_global_var;然后,在一个单独的.c文件中,您可以定义和初始化它:
int my_global_var = 0;现在,您可以在包含适当头文件的任何其他代码模块中使用my_global_var,并且可以链接到包含全局变量定义的适当.c文件。
发布于 2011-06-30 02:33:30
使用extern保留字。
永远不要在'.h‘文件中创建变量,这是一种会导致错误的糟糕做法。取而代之的是,在需要使用它们的地方将它们声明为extern,并仅在单个“.c”文件中声明变量本身,在该文件中,变量将被实例化,并从使用它的所有其他位置链接到该文件。
https://stackoverflow.com/questions/6525496
复制相似问题