C语言怎么区分全局变量声明和全局变量定义
时间: 2024-08-13 16:06:36 浏览: 116
C语言 全局变量和局部变量详解及实例
5星 · 资源好评率100%
在C语言中,全局变量的声明和定义是两个独立的过程,分别发生在源文件的不同部分:
1. **全局变量声明(Declaration)**:
- 声明:当你在函数外部使用`extern`关键字,然后紧跟变量名,即使没有初始化值,也可以声明全局变量。例如:
```c
extern int globalVar; // 只声明,未定义
```
- 声明但不初始化的全局变量通常在其他源文件(.c或.h)中进行,仅告知编译器变量的存在。
2. **全局变量定义(Definition)**:
- 定义:实际给变量分配内存并提供初始值的地方,通常在主程序文件(如main.c)的开始部分或者单独的.c文件中。例如:
```c
int globalVar = 0; // 在这里定义并初始化全局变量
```
区别:
- 声明是告诉编译器“将来某个地方会有这个变量”,而定义则是为这个变量分配内存和确定其类型。
- 如果在一个.c文件中声明但未定义,而在另一个.c文件中定义,那么需要包含头文件或者链接多个源文件。
阅读全文