我真的不敢相信,C语言居然能够做到这些。
「那是自然,C语言的强大,超乎你的想象。之前都和你说过,C语言就是道生一,一生二,二生三,三生万物中的三,别看现在各种高大上的变成语言遍地开花,但或多或少,或直接或间接,都和C语言有千丝万缕的关系,所以丝毫不用怀疑C语言的用处。」
「那老爹,能不能把小灵的代码给我看看?」
「这有什么难的?」
说罢,老爹打开电脑,找出了一个工程。
工程打开足足加载了半分钟!里面有十来个文件夹,每个文件夹里有了数十个.c文件!
「我勒个乖乖,这也太恐怖了吧!」
我不禁咋舌。
「老爹,你这是写了多久啊!」
「差不多一年吧,喏,这里还有当年的设计概要和一些分析文档,有兴趣你可以看看。其实写代码倒是不费时间,费时间的是调试过程。调试用的时间往往是写代码的五六倍,甚至更多。
关键是还要验证硬件的问题,可能你用了好几天的时间来寻找代码的问题,结果发现是硬件电路出问题了,这种事情在调试过程中经常发生。
在这个过程中,遇到了很多的困难,甚至于很多bug我到现在都没有想明白,好多次老爹都差点放弃了,要不是有你妈妈的支持和鼓励,我根本就坚持不下来。」
那么多的.c文件,看得我头皮发麻,根本就不知道从什么地方开始看起。
「拿到一个工程,首先肯定是从main函数开始看啥,然后顺着main函数查看函数的调用关系。如果整个系统比较复杂的话,就先理顺整个系统。这个时候就可以借助思维导图软件了,将整个系统的脉络整理出来。
等到调用的最底层,就是每个最小功能的具体实现了,然后再通过系统脉络倒推回去,这样就基本上对系统就有个大概的了解了。」
「呵呵,老爹你说得轻巧,这么多代码,等我看完估计我都得上高中了!」
从main函数跟进了几层调用后我就开始凌乱了,即便老爹写的程序注释很健全,我都失去了看下去的欲望。
「如果你想让你学习的C语言好好利用起来,我这里有块32单片机的开发板,你可以先拿去玩儿,等你什么时候能够把C语言用得比较溜了,那个时候我就教你Java或者C#中的一种。
其实这两种语言相似度非常高,只要你会其中任意一种,就能够轻松地过渡到另外一种。」
看着近乎要逆天的婴儿车,又看了看老爹手中的开发板。算了算了,还是玩儿这个简单的吧,那个婴儿车我确实没有勇气去动它。
于是乎,在接下来的时间里,我就跳进了开发单片机的坑。这个坑的确是挺大的,至少比之前学习C语言的时候可难多了。
而且这其中还涉及到电路的知识,当然了,老爹在给我讲解的时候不可能说得很细致,只是说应该如何驱动。因为这其中的知识可海了去了,说了我也听不明白。
而且老爹说他一个学电子信息的人,专业知识就是和各种电路和信号打交道的,最终却选择了写代码,最大的原因就是对硬件不感冒!