C语言深处

    返回首页    发表留言
本文作者:李德强
          前言
 
 

        C语言是我学习的第一种计算机编程语言。虽然早在读初中时就接触过Basic语言,但那也仅仅是接触过而已,那时老师只用了几行代码就编写出一个用“*”排列成菱形的程序。我见到之后只觉得无比神奇。从那时起我对计算机编程就产生了深厚的兴趣,只可惜Basic语言课程也只学习4节,学校的领导与大多数人的想法一样,为了让我们好好学习数理化课程,残忍的把Basic这门课给停了。课虽然停了,但我对计算机的热情却没有停止,我家庭条件也不好,并没有钱买电脑,也没有机会再对这方面的内容有任何的接触。高考时,我报考了一所大学的计算机系,入学后所学的第一门编程语言就是C语言,这让我兴奋不已,从此开始了自己的编程之路。

        现在,我也工作了很多年,也学过不少的其它编程语言,例如C++、C#、Java、VB、Javascript等等。工作的这些年也是以Java为主要的编程语言,我是一个喜欢打破沙锅问到底的人,对于计算机软件技术我喜欢研究计算机软件的运行原理,喜欢研究CPU的调度原理,喜欢各个硬件之间的协同原理等等。这一切的起因是几年前我在使用Java的多态机制时,忽然想到的两非常简单的问题:类的对象在内存中是什么形式的?多态是如何实现的?于是我开始重新学习C语言,学习各种变量类型在内存中的形式,学习结构体在内存中的形式,学习函数在内存中的形式。在学习基本变量类型和结构体时还好说,但学习函数在内存的原始形式时又遇到了一些阻碍,于是我又开始重新学习汇编语言。经过一年多的学习,终于明白了C语言的运行原理及内部运行机制。并通过汇编和C语言编写了一个类Linux的简易操作系统——LidqOS(如果有兴趣的读者可以参看我的另一个教程《跟我一起写操作系统》)。可以说我爱C语言爱过其它编程语言。这并不是说其它的编程语言不好,不同的语言有着不同的应用领域,只不过我更加喜欢C语言罢了。

        在学习本教程之前请保证你已经学好了C语言基础,已经有了一定的基本功,不然直接学习本教程可能会有些吃力,因为在这里我不会去讨论C语言的语法、递归、指针、指针函数、函数指针等等,而是抓住C语言内部的运行原理机制来与大学讨论学习。在本教程中我们将一起学习变量在内存中的形态到底是什么样的,指针的本质是什么,C语言是如何实现动态不定参数的,它是怎么来实现多态的(虽然多态是面向对象机制特有的名词,但C语言在很早很早的时期就可以实现这种机制)等等。如果我们把C语言比作一座无际的原始森林,现在就来跟我一起走向它的深处,去了解它内在的美丽与神奇!

        注:本教程采用系统环境为32位小尾机,所使用的编译器为gcc 5.1.1,在编译时采用C99标准(为gcc加入-std=c99编译选项),以后章节中不再作特殊说明。

    返回首页    返回顶部
#1楼  匿名  于 2017年02月22日09:19:41 发表
 
hi
#2楼  匿名  于 2017年10月18日09:42:53 发表
 
支持问渠网
#3楼  匿名  于 2018年10月29日16:10:14 发表
 
支持
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号