C 语言能不能在头文件定义全局变量?

Posted dhqy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言能不能在头文件定义全局变量?相关的知识,希望对你有一定的参考价值。

可以,但一般不会将全局变量的定义写在头文件中。

因为如果多个 C 源文件都添加了头文件,很容易引起重定义的问题。这时候一般编译器都会提示:“multiple definition of... first defined here” 错误。

正确的作法是在 C 源文件中定义一个全局变量,并在对应的头文件中添加该变量的声明。例如:

  //var.c 一个主要用于定义全局变量的c源文件
    int g_a;
    char g_x;
 
  //var.h 用于声明定义的全局变量
    extern int  g_a;
    extern char g_x; 
 
 
  //test.c 一个用于测试的头文件
    #include <var.h>
    void f()
    {
      g_a = 1;
      g_x = ‘x‘;
    }

以上是关于C 语言能不能在头文件定义全局变量?的主要内容,如果未能解决你的问题,请参考以下文章

C语言之在头文件中定义全局变量

C语言中怎样在头文件中定义一个能够在所有文件中都可以使用的全局数组变量 ?

C语言全局变量(c文件和h文件中的全局变量静态全局变量)使用注意事项

C语言全局变量(c文件和h文件中的全局变量静态全局变量)使用注意事项

C语言中如何定义全局变量

C语言:全局变量在多个c文件中公用的方法 [转]