找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1776|回复: 6
收起左侧

阅读C和指针这本C语言书 运行时的环境这章,感觉很吃力

[复制链接]
ID:908826 发表于 2023-7-16 08:18 | 显示全部楼层 |阅读模式
在阅读这本书最后一章:“运行时的环境”时,感觉很吃力。尤其是堆栈帧布局那一块,请问一下这一块需要补充什么理论知识呢?
回复

使用道具 举报

ID:883242 发表于 2023-7-16 17:14 | 显示全部楼层
《数据结构》递归那一节。
回复

使用道具 举报

ID:844772 发表于 2023-7-17 08:28 | 显示全部楼层
没看过这本书,一般运行环境要搞懂,需要计算机原理和数据结构,还有人专门研究了操作系统,我的建议是既然没学过那些,就先跳过这些,对你编程没太大影响。
回复

使用道具 举报

ID:712097 发表于 2023-7-17 09:18 | 显示全部楼层
理论联系实践,看看有没有配套例程,实际操作一下会好很多。
回复

使用道具 举报

ID:908826 发表于 2023-7-17 10:01 | 显示全部楼层
glinfei 发表于 2023-7-17 08:28
没看过这本书,一般运行环境要搞懂,需要计算机原理和数据结构,还有人专门研究了操作系统,我的建议是既然 ...

好的,谢谢您的建议
回复

使用道具 举报

ID:155507 发表于 2023-7-17 11:34 | 显示全部楼层
在理解C语言中的运行时环境和堆栈帧布局时,以下是一些相关的理论知识可能会有所帮助:

1.内存模型:了解计算机内存的基本组成和工作原理是理解运行时环境的关键。你可以学习关于内存的基础知识,包括内存的地址空间、栈和堆的概念,以及变量和数据在内存中的存储方式。

2.堆栈概念:理解堆栈的概念是理解堆栈帧布局的前提。了解堆栈的基本原理,包括栈的先进后出(LIFO)特性,以及函数调用和返回时堆栈的使用方式。

3.栈(Stack)和堆(Heap):了解堆栈和堆的基本概念对于理解运行时环境是很重要的。堆栈是一种后进先出(LIFO)的数据结构,用于存储函数调用、局部变量和函数参数等。堆则是用于动态分配内存的一种机制,通过函数如malloc()和free()来管理。

4.函数调用和返回:学习关于函数调用和返回的过程对于理解堆栈帧布局至关重要。了解函数调用时参数和局部变量的存储方式,以及函数调用过程中的堆栈操作。

5.函数调用栈:了解函数调用栈对于理解堆栈帧布局非常重要。函数调用栈是用于存储函数调用相关信息的一种数据结构,包括函数的返回地址、参数、局部变量等。每次函数调用时,会在堆栈上创建一个新的堆栈帧(stack frame),用于存储这些信息。

6.栈指针(Stack Pointer)和帧指针(Frame Pointer):栈指针指向当前堆栈帧的顶部,而帧指针指向当前函数堆栈帧的开始位置。了解这两个指针的作用和用法对于理解堆栈帧布局非常重要。

7.堆栈帧布局:堆栈帧布局是指函数在堆栈上分配内存的方式和布局结构。它包括函数参数、局部变量、返回地址以及可能的编译器生成的其他信息。理解堆栈帧布局对于调试和理解函数调用的内部工作原理至关重要。

8.堆栈帧布局:堆栈帧布局描述了函数在堆栈中的存储布局,包括函数参数、局部变量、返回地址以及其他与函数调用相关的信息。学习堆栈帧布局的组成部分和它们在堆栈中的相对位置,以及如何通过堆栈指针和偏移量来访问这些数据。

9.寄存器的使用:了解寄存器在函数调用和返回过程中的使用方式也是理解堆栈帧布局的一部分。学习关于调用约定和寄存器保存的规则,以及如何在堆栈帧中存储和恢复寄存器的值。

10.调用约定(Calling Convention):调用约定是指函数调用时如何协商参数传递、返回值处理以及堆栈管理等的规则。不同的编译器和操作系统可能采用不同的调用约定。了解调用约定可以帮助你理解在堆栈帧布局中参数和返回值的传递方式。

11.异常处理和堆栈展开:了解异常处理机制和堆栈展开过程对于理解堆栈帧布局的高级概念很重要。学习关于异常处理的基本原理,以及在异常发生时如何在堆栈中进行回溯和恢复。

以上是一些与理解C语言运行时环境和堆栈帧布局相关的理论知识。如果你感到困难,可以查阅更多关于堆栈、堆栈帧和调用约定的资料,以及与此相关的操作系统和编译器文档。此外,调试工具和跟踪函数调用的工具也可以帮助你更好地理解和可视化堆栈帧布局的工作原理。

回复

使用道具 举报

ID:123289 发表于 2023-7-17 16:31 | 显示全部楼层
当你弄懂单片机原理后,C中定义的一切就都明白了。
一定是你根本未懂CPU的结构及运行原理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表