可以,但一般不会将全局变量的定义写在头文件中。
因为如果多个 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'
;
}