C-变量详解(13)

来源:互联网 发布:树莓派 单片机 编辑:程序博客网 时间:2024/06/05 04:24
#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

//声明一个函数 默认隐藏externvoid test2();

one.c

#include <stdio.h>//定义一个函数void test2(){printf("go to test2");}

变量存储





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

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

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

0 0