理解C语言-3:编译链接 2018-03-31 | { 编码 } { 沉思 } { C语言 } { 编译 } { 链接 } { 加载 } { 符号表 } { 可重定位格式 } { ELF } / { 魔术 } { 编码 } { C语言 } 简介上一篇介绍了C语言如何通过语句操作数据。本篇依旧贯彻解决”为什么”的原则,以终为始,从操作系统执行程序所需的内存布局入手,反推在源代码和最终可执行文件之间,编译和链接子系统需要做哪些工作。 Read On »
理解C语言-2:指令执行 2018-03-24 | { 编码 } { 沉思 } { C语言 } { 指令执行 } { 指令式编程 } { 操作符 } { 操作数 } { 表达式 } { 语句 } { 控制流 } { 函数 } { 调用约定 } { 活动记录 } / { 魔术 } { 编码 } { C语言 } 简介上一篇主要描述了C语言如何将待处理的数据建模成变量。有了变量,接下来需要拆解的就是如何使用他们。 Read On »
理解C语言-1:内存数据对象 2018-03-17 | { 编码 } { 沉思 } { C语言 } { 内存数据对象 } { 变量 } / { 魔术 } { 编码 } { C语言 } 初衷市面上介绍C语言的书很多,但是大都是从语法和实践入手,以传授”怎么做”或者”怎么做好”为根本目标。俗话说授人以鱼不如授人以渔,虽然我不是C语言的设计者,但是却渴望从”为什么”切入,顺藤摸瓜理顺C语言为什么长成这样。 其次,C语言是现代计算机语言的鼻祖,也是绝大多数高级语言编译器或解释器的实现语言,理解C的设计理念,对于学习各类现代高级语言一定会有所帮助。 废话不多,让我们从内存数据对象入手拆解C语言吧。 Read On »
编程语言杂想-通识 2018-03-10 | { 编码 } { 沉思 } / { 魔术 } { 编码 } 为了使文章更有针对性,先抛出本系列文章想解决的问题:作为一名程序猿,如何快速学习并掌握一门新兴的计算机语言? 本文作为系列第一篇,专注于解释我理解中计算机语言的通用知识。 Read On »