![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译基础
文章平均质量分 95
darkfaker
这个作者很懒,什么都没留下…
展开
-
函数调用堆栈_C底层18/2/25
前情提要函数是C语言的基本组成单位,相信平常使用函数也是觉得很easy的,但是有没有深入了解一下其具体实现过程呢? 这里将对函数调用堆栈的具体过程做一个疏通,虽然不能保证很深入,很有知识,但能保证对函数调用堆栈的过程有一个大概的了解。因为这本身就是对初学者适用的。我们要了解函数堆栈,就必须得先知道栈是个什么东西。先给出理论:栈 栈在经典计算机中被定义为一个特殊的容器,用户可以...原创 2018-02-25 20:19:13 · 350 阅读 · 1 评论 -
链接过程中的符号重定位_C底层18/2/25
前情提要对于编译和链接的基本过程,这里只对链接过过程的符号重定位做了解释,因为个人认为在链接过程中符号的重定位是最重要的一步,也是其精华所在,知道了这一步的实现过程可以解决很多问题,包括面试中可能会问到的关于extern等的方面。所以这里只有对符号重定位进行了详细的说明,如果想了解更多可以参看《程序员的自我修养》第2,3,6 章节。里面有很详细的解释。 如果对虚拟地址空间的内存分布还不够了...原创 2018-02-25 19:06:48 · 657 阅读 · 0 评论 -
函数调用约定及函数返回值_C底层18/2/26
前情提要这次的这篇关于函数约定及返回值的博客,并没写的很精髓,如果看到了就只做参考吧。这方面的知识还是推荐看《程序员的自我修养》。 本文中有关于函数调用堆栈的内容可先浏览博客函数调用堆栈过程详解一:函数调用约定调用约定所规定的 1)函数参数的传递顺序和方式 这一项其实说的就是函数产生的参数入栈顺序会不同 对于C中的三个约定_cdecl _stdcall _fastca...原创 2018-02-26 18:54:16 · 563 阅读 · 0 评论 -
IA32位Linux内核中的虚拟地址映射——上
IA32位Linux内核中的虚拟地址映射——上虚拟地址空间布局CPU知识储备Linux 内存管理的基本框架 地址映射的基本过程 —— 推荐书籍《Linux内核源代码情景分析》1,在分析Linux32内存地址映射前,先看一段简单的C语言程序代码在32位和64位系统上运行的结果:#include <stdio.h>{ unsigned lon...原创 2018-04-05 14:02:00 · 609 阅读 · 0 评论