#include <stdio.h>
#include "one.h"
//声明一个静态变量
int i;
//相当于
extern int l;
//声明一个静态变量:该变量只能在此文件中全局使用
static int q;
void test(){
//声明并定义一个自动变量
int j=0;
//声明一个静态局部变量
static int k=0;
//Tip:i,k都是静态变量 但作用域不同
//j k都是局部变量,但生命周期不同,每次调用完j自动销毁,而k却会保留至下次调用
//寄存器变量必须是自动变量.当系统用完后自动从寄存器中销毁
register int b;
}
int main(int argc,char *argv[]){
test2();
return 0;
}
one.h
//声明一个函数 默认隐藏extern
void test2();
one.c
#include <stdio.h>
//定义一个函数
void test2(){
printf("go to test2");
}
变量存储
1.代码区:存放程序执行的代码
2.静态区:全局变量和静态变量(有的同学可能有更深的认识静态区可以 细分为:
1.非初始化数据段:存放未初始化的全局变量和静态变量。
2. 初始化的数据:存放初始化的全局变量和静态变量。)
3.堆:动态分配区域,malloc, calloc, realloc等函数
4.空闲内存:堆栈式可延伸的,空闲内存提供堆向下与栈向上需要的空间
5.栈:局部变量及每次函数调用时返回地址、以及调用者的环境信息
C语言设计了这个规则,并严格的为每个程序分配与管理内存,使程序的运行井然有序。一个物品摆放整齐的房间,
寻找某件物品会更快,C语言的内存分配机制同样如此,使其拥有更优良的性能。示例如下:
变量存储内容引用自:点击打开链接