摘要: 三种链接属性 1,程序的生成过程:编译+链接。编译以文件为单位,编译器将所有的源文件依次读进来,单个文件进行编译,最后将函数/变量等变成.o的二进制机器码;链接以工程为单位,链接器将编译之后产生的.o文件整体的输入,然后处理链接成一个可执行程序。 2,链接属性就是在链接过程中,对于一个.o文件中的符 阅读全文
posted @ 2020-11-21 19:32 xuxianshen 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 一,栈变量的生命周期 1,局部变量存储在栈上,生命周期是临时的。从定义变量处诞生到变量最近的 ‘}’处消亡。 2,比如一个函数内定义的局部变量,在这个函数的每一次调用时都会被创建一次,然后使用,最后在函数返回时消亡。 二,堆变量的生命周期 1,堆空间是客观存在的,是由操作系统维护的。程序只是申请然后 阅读全文
posted @ 2020-11-21 19:31 xuxianshen 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 一,auto 1,修饰局部变量,表示这个变量是自动局部变量,自动局部变量分配在栈上,使用前如果不初始化它的值就是随机的。 2,定义auto局部变量时auto可以省略,平时定义普通局部变量时就是auto类局部变量。 二,static 1,两种用法 一种是修饰全局变量/函数 和普通的全局变量/函数对比s 阅读全文
posted @ 2020-11-21 19:29 xuxianshen 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 一,内存图示 二,各内存段的作用 1,代码段、只读数据段 对应着程序中的代码(函数),代码段在Linux中也叫做文本段(.text) 只读数据段就是程序在运行时只能读不能写的数据,const修饰的常量就有可能存放在只读数据段。 2,数据段、.bss段 数据段存放,显示初始化为非0的全局变量和显示初始 阅读全文
posted @ 2020-11-21 19:28 xuxianshen 阅读(149) 评论(0) 推荐(0) 编辑