引言
这些天写的程序中用到了全局变量,一开始是在一个文件下做测试后来把文件按逻辑拆分了一下,不同的代码被放在了几个文件中,最后用Makefile来编译就遇到了今天的话题,怎么在头文件中定义全局变量呢?
做法
要想一个文件中的变量被一个工程中的其他多个文件同时访问就要借助extern关键字,在头文件中用extern关键字声明该全局变量可供其他外部文件使用
- 在头文件中声明在C文件中定义
其他文件要用到该变量时直接在C文件中用extern声明变量就可以了不用包含头文件
//如:parser.h中声明count、g_sigstop为全局变量
#ifndef PARSER_H
#define PARSER_H
extern int count;
extern int g_sigstop;
char *parser_argument(int argc, char **argv);
void print_usage();
#endif
切记这里头文件中是声明不是定义,如果你要作死给count或者g_sigstop赋个值,比如: