一、在内存中的区别
局部变量(动态申请的数据存储在堆)和函数参数(函数参数是从右向左存储在栈中)存储在堆栈
全局变量(全局变量系统初始化为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
/////////////////////////////////////////////////////////////////////////////////////////////////////