C-变量详解(13)

时间:2022-12-12 16:05:16
#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");
}

变量存储

C-变量详解(13)


C-变量详解(13)


 1.代码区:存放程序执行的代码
           2.静态区:全局变量和静态变量(有的同学可能有更深的认识静态区可以 细分为:
                                                     1.非初始化数据段:存放未初始化的全局变量和静态变量。
                                                     2. 初始化的数据:存放初始化的全局变量和静态变量。)
           3.堆:动态分配区域,malloc, calloc, realloc等函数
           4.空闲内存:堆栈式可延伸的,空闲内存提供堆向下与栈向上需要的空间
           5.栈:局部变量及每次函数调用时返回地址、以及调用者的环境信息
 C语言设计了这个规则,并严格的为每个程序分配与管理内存,使程序的运行井然有序。一个物品摆放整齐的房间,

寻找某件物品会更快,C语言的内存分配机制同样如此,使其拥有更优良的性能。示例如下:

变量存储内容引用自:点击打开链接