C程序在内存的分布&关键字修饰变量

1.程序段

存放程序代码的一段区域,程序段是只读的

2.数据段

存放已经初始化的全局变量,属于静态内存分配

3.bss段

BSS(Block Started by Symbol)存放程序中未初始化的全局变量和静态变量

4.堆

保存进程中被动态分配的内存

       #include <stdlib.h>

       void *malloc(size_t size);
       void free(void *ptr);
       void *calloc(size_t nmemb, size_t size);
       void *realloc(void *ptr, size_t size);

5.栈

存储程序中临时创建的局部变量,函数调用,参数入栈,出栈过程也在栈中完成

6.static

静态局部变量:局部变量的数值就是上一次调用之后的数值
静态全局变量:只能在本程序中使用这个全局变量

7.register

寄存器变量:和编译器相关,这个变量会被频繁的使用,被保存到寄存器中,不能对寄存器变量取地址&

8.volatile

不稳定,易变的,使用volatile修饰的变量其数值可能会发生改变
使用场景:
多进程,多线程,共享数据
硬件寄存器0x12345678
一个中断服务子程序中使用的非自动变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值