内存管理、预处理与结构体

1.未初始化的全局变量(.bss段)

用来存放那些没有初始化和初始化为零的全局变量。

2.初始化过的全局变量(.data)

里面存放那些初始化为非零的全局变量。

3.常量数据(.rodata段)

ro代表ready only,rodata就是用来存放常量数据的。在多个进程是共享的,这样可以提高运行空间利用率。

4.代码(.text段)

存放代码和部分整数常量,它与rodata段很像,主要不同在于这个段是可以执行的。

5桟(stack)

桟用于存放临时变量和函数参数。桟作为一种基本数据结构,可以用来实现函数的调用。通常情况下,桟向下(低地址)增长,每向桟中PUSH一个元素,桟顶就向低地址扩展,每从桟中POP一个元素,桟顶就向高地址退回。

6.堆(heep)

堆是最灵活的一种内存,它的使用周期完全由使用者控制。

malloc:用来分配指定大小的内存;

realloc:用来调整/重新分配一块存在的内存。

free:用来释放不再使用的内存。

7.内存分配方式

(1)从静态存储区域分配

(2)在桟上创建

(3)从堆上分配,亦称动态内存分配。

8.宏定义:define

宏定义是由源程序中的宏定义命令完成的。宏替换是由预处理程序自动完成的,在c中,宏分为有参数和无参数两钟。

9.结构体

声明一个结构体类型的一般形式为:

             struct   结构体名   {成员表列};

如:struct student

       {

              int num;

      char name[20];

      char sex;

              int age;

              float score;

              char addr[30];

         } ;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值