《程序是怎样跑起来的》第八章读后感

本章主要讲解了编译器的功能,程序员编写的代码称为源代码,而源代码在计算机上无法运行的,需要通过编译器生成本地代码才能在计算机上运行,每个源代码编程语言都需要专用的编译器,编译器通过语法解析、句法解析、语义解析等才能生成本地代码,根据CPU的不同,本地代码也不同,正如上一章所说的运行环境问题,一段代码仅靠编译是无法直接运行的,还需要进行链接处理,生成EXE文件,通过双击加载到内存中进行处理,当程序运行时还会生成两个额外的组,栈和堆,他们是通过程序的运行得到的。
除此之外,我还知道了CPU能解释和执行的程序叫本机代码;将多个目标文件拼接成一个EXE文件的工具叫链接器;扩展名。obj的目标文件的内容是本机代码;由多个目标文件打包而成的文件叫库文件;包含DLL文件中的函数调用信息的文件叫导入库;程序运行时动态分配的内存空间叫堆。对源代码进行编译后可得到本机代码,通过编译和链接可得到EXE文件,对源文件进行编译后可得到目标文件,链接器会从库文件中提取必要的目标文件并将它们拼接成一个EXE文件。在程序运行时进行动态链接的DLLwenjain也属于库文件。转储是指将文件内容按1字节2位十六进制数的形式显示出来。使用库文件可以避免在链接器的参数中指定一大堆目标文件。一个库文件可以打包多个目标文件,还可以隐藏标准函数的源代码。内存中的程序是由变量空间、函数空间、栈空间和堆空间四个区域组成的。在加载程序的内存空间中,会生成栈和堆两个区域。

posted @   Y-Y0131  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示