全局变量、局部变量

时间:2020-12-19 10:29:47

一、在内存中的区别
局部变量(动态申请的数据存储在)和函数参数(函数参数是从右向左存储在中)存储在堆栈
全局变量(全局变量系统初始化为0,局部变量是随机值)、常量和静态变量存储在静态存储区

二、引用已经定义过的全局变量
1、引用头文件的方式
例:

/////////////////////////////////////////////////////////////////////////////////////////////////////
test.c:
#include <stdio.h>
#include "test.h"

void main()
{
printf("%d\n",variable);
}
test.h:
int variable=5;
结果:
gcc -o t test.c
./t
5

/////////////////////////////////////////////////////////////////////////////////////////////////////
2、extern关键字
例:

/////////////////////////////////////////////////////////////////////////////////////////////////////
test.c:
#include <stdio.h>

void main()
{
extern int variable;
printf("%d\n",variable);
}
te.c:
int variable=10;
结果:
gcc -c te.c
gcc -c test.c
gcc -o t te.o test.o
./t
10

/////////////////////////////////////////////////////////////////////////////////////////////////////