C语言跨文件全局变量
时间: 2024-09-25 11:06:24 浏览: 40
深入探讨C语言中局部变量与全局变量在内存中的存放位置
在C语言中,如果你想在一个程序的不同源文件中共享数据,可以使用全局变量。全局变量是定义在函数外部的变量,其生命周期贯穿整个程序。如果你需要让这个变量在整个项目范围内可见,通常有两种方式:
1. **静态全局变量(static extern)**:在一个源文件中声明变量为`static`,并在其他源文件中通过`extern static`来引用它。这种方式保证了变量的唯一性和存储空间只分配一次。
```c
// file1.c
static int global_var;
// file2.c
extern static int global_var;
```
2. **非静态全局变量(extern)**:直接在所有需要使用该变量的源文件中使用`extern`关键字声明,但在某个地方(通常在一个包含头文件中)提供完整定义。这样每个文件只声明不分配空间,链接时才生成全局地址。
```c
// 文件 header.h
extern int global_var;
// file1.c 和 file2.c 中都包含 header.h
int global_var; // 只有在某个源文件中给出完整的定义
```
阅读全文