可以,但一般不会将全局变量的定义写在头文件中。
因为如果多个 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‘;    }原文:https://www.cnblogs.com/dhqy/p/9510802.html