您好!欢迎来到源码码网

C语言深入学习--checklist7:链接、运行时数据结构、申明

  • 行业资讯
  • 来源:源码码网
  • 编辑:admin
  • 时间:2020-04-27 09:26
  • 阅读:464

你知道段的概念吗?


段是二进制文件中的简单区域,里面保存了某种特定的类型(如符号表条目)相关的所有信息。


1.       可执行程序分为几个段?每个段保存什么内容?


可执行程序分为三个段:BSS段、数据段、文本段


BSS段(Block Started by Symbol)存放未经初始化的全局变量和未初始化的静态变量;


数据段存放经过初始化的全局变量和静态变量;


文本段存放可执行文件的指令;


当然可执行文件还有其它内容,如神奇数字等等;


当可执行程序被读入内存成为一个进程的时候,还要包括堆栈段。


堆栈段中主要存放局部变量、malloc申请的变量、进行函数调用的维护信息、


2.       如何查看可执行程序各个段的大小?


使用size命令


size a.out(文本段、数据段、BSS段)


3.  当函数被调用的时候,发生了什么?


当每个函数被调用的时候,堆栈都会产生一个过程活动记录。


4.  你有没有试过程序的最大栈空间?程序超过此大小会发生什么?


测试栈容量:




运行时候就提示错误:在WINDOWS下,栈的大小是2M(也有的是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。


测试最大的堆容量:




在我的机器上,结果如下:


Allocated 1918 MB total.


5.  如何知道系统的栈是向下生长还是向上生长的?


   


http://leomayleomay.blogbus.com/logs/4822542.html给出了一个不依赖编译器实现的程序;概念栈帧,意思就是与一次函数调用有关的全部信息:参数、返回地址和局部变量等等


在我的机器上,是向下生长的;


 


 


Include


如何避免对同一个头文件的多次include?


使用条件包含:


 


申明:


1.  什么是申明,什么是定义?


申明是告诉编译器对象的类型和名字


定义是确定对象的类型并进行分配内存,用于创建新的对象


2.  你是否会运用C语言申明的优先级规则?


C语言申明的优先级规则


《C专家编程》P64


A.  申明从它的名字开始读取,然后按照优先级顺序依次读取。


B.  优先级从高到低依次是:


1.  申明中被括号括起来的那部分;


2.  后缀操作符:


括号()表示这是一个函数,而方括号[]表示一个数组;


3.  前缀操作符:星号*表示“指向……的指针“


C.      如果const和(或)volatile关键字的后面紧跟类型说明符(如int,long等)那么它作用于类型说明符。在其它情况下,const和(或)volatile关键字作用于它左边紧邻的星号指针

————————————————


原文链接:https://blog.csdn.net/randyjiawenjie/java/article/details/6359207


特别声明:
1、如无特殊说明,内容均为本站原创发布,转载请注明出处;
2、部分转载文章已注明出处,转载目的为学习和交流,如有侵犯,请联系客服删除;
3、编辑非《源码码网》的文章均由用户编辑发布,不代表本站立场,如涉及侵犯,请联系删除;
全部评论(0)
推荐阅读
  • 工程项目一体化自动管理软件解决方案
  • 工程项目一体化自动管理软件解决方案
  • 1.项目概述1.1项目背景在工程建设行业数字化转型浪潮下,传统项目管理面临信息孤岛、协同困难、进度不可控、成本超支等痛点。本方案旨在构建一个覆盖工程项目全生命周期、全参与方、全业务流程的一体化智能管理平台。1.2解决方案愿景打造数据驱动、智能协同、风险预警、自动执行的工程大脑,实现:管理流程自动化率≥80%项目协同效率提升40%成本偏差率降低至±3%以内安全事故发生率降低60%1.3目标用户矩阵┌───────────────┬
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:26
  • 阅读:141
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 车辆管理系统需求文档与技术架构PC端+小程序
  • 第一部分:需求文档1.项目概述1.1项目背景为企事业单位、车队运营商、租赁公司等提供一套完整的车辆全生命周期管理解决方案,实现车辆管理数字化、智能化。1.2项目目标建立车辆从购置到报废的全流程管理体系实现用车申请、调度、监控、结算的闭环管理通过数据分析优化车辆使用效率降低车辆运维成本20%以上1.3用户角色矩阵┌──────────────┬─────────────────────────────┬──────────────
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:11
  • 阅读:132
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档
  • 智慧农业/渔业物联网系统需求文档文档版本: V1.0项目目标: 构建一个集环境智能监测、设备自动化控制、生长模型分析、溯源管理与远程指挥于一体的综合物联网管理平台,实现降本增效、提质增产、风险预警与品牌增值。1.系统总体概述1.1核心价值: 数据驱动决策,解放人力,实现农业/渔业生产的精准化、自动化与智能化。1.2用户角色:生产员/养殖员: 现场巡视、接收告警、执行设备手动控制、查看实时环境
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 11:04
  • 阅读:44
  • 程序员AI编程工具推荐
  • 程序员AI编程工具推荐
  • AI编程工具是当前开发者的“副驾驶”,能够极大提升开发效率。以下我将从通用型、代码专用型、垂直领域型以及开源/自部署型几个维度为您分类推荐,并附上它们的核心特点和适用场景,帮助您选择。一、通用型AI对话助手(编程是核心能力之一)这类工具本质是“更懂代码的ChatGPT”,适合处理广泛的编程问题、解释代码、生成文档等。ChatGPT(GPT-4/4o)简介:行业标杆,尤其在GPT-4版本下,代码理解和生成能力极强。优点:上下文能力强,
  • 源码教程
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:56
  • 阅读:77
  • 中医考证在线学习小程序系统需求文档
  • 中医考证在线学习小程序系统需求文档
  • 中医考证在线学习小程序系统需求文档文档版本: V1.0目标用户: 中医执业医师、助理医师、确有专长、师承等考证学员核心价值: 利用移动化、碎片化、智能化工具,提升学习效率与考试通过率。1.项目概述1.1项目目标开发一款专为中医考证学员设计的微信小程序,提供从课程学习、题库练习、考点记忆、模考冲刺到学习社区的一站式闭环学习体验。旨在帮助学员充分利用碎片时间,系统化、高效地备考。1.2用户角色学员(主要用
  • 行业资讯
  • 来源:源码码网
  • 编辑:源码码网
  • 时间:2026-01-09 10:53
  • 阅读:15
联系客服
源码代售 源码咨询 技术开发 联系客服
029-84538663
手机版

扫一扫进手机版
返回顶部