C语言中全局变量和局部变量的区别是他们的作用域不同,全局变量是整个C程序,局部变量是定义所在的大括号内,同一个作用域内不能定义两个同类型同名的变量,因为编译会报错。
由1个或者多个C文件组成的工程中,可以定义和全局变量同名同类的局部变量,但是不提倡这样使用,因为此时变量的值和变量被调用的位置有关系。
使用全局变量时,需要先用extern关键字声明,全局函数也是用相同的关键字。
顺便复习static关键字:
static主要定义全局静态变量、定义局部静态变量、定义静态函数。
特点\用法 | 定义全局静态变量 | 定义局部静态变量 | 定义静态函数 |
内存 | 全局数据区分配 | 全局数据区分配 | 无 |
作用域 | 文件内定义开始到文件结束,其他文件不可用,不可继承,其他文件可以定义重名变量 | 函数内定义开始到函数结束 | 文件内定义开始到文件结束 |
可见域 | 文件内定义开始到文件结束 | 函数内定义到文件结束,局部可用,但是全局可见,局部函数返回其值可见 | 文件内定义开始到文件结束 |
参考博客地址:https://blog.csdn.net/guotianqing/article/details/79828100