在C语言中,如果你在多个源文件中定义了全局变量,编译器会提示你重定义该全局变量。这是因为全局变量应该在程序的所有源文件中具有唯一的定义。
要解决这个问题,你可以将全局变量的定义放在一个头文件中,并在其他需要使用该全局变量的源文件中包含这个头文件。这样,编译器将只看到一个全局变量的定义,而不会提示重定义错误。
下面是一个示例:
-
创建一个名为
global.h
的头文件,并在其中声明全局变量
c复制代码
// global.h | |
#ifndef GLOBAL_H | |
#define GLOBAL_H | |
extern int globalVar; | |
#endif // GLOBAL_H |
-
在一个源文件中定义全局变量:
c复制代码
// global.c | |
#include "global.h" | |
int globalVar; |
-
在其他需要使用该全局变量的源文件中包含头文件:
c复制代码
// main.c | |
#include "global.h" | |
#include <stdio.h> | |
int main() { | |
globalVar = 10; | |
printf("Global variable: %d\n", globalVar); | |
return 0; | |
} |