C语言导论

网友投稿 579 2022-05-30

C语言导论

第一章 起步:从操作系统开始 笔者认为讲解一门编程语言,就不能和结合编程语言的平台讲解。脱离了编程平台,编程语言毫无一用。我们学习C#,一定要下载安装微软公司的.net平台;我们学习java,一定要下载安装Orcle公司的JDK;我们学习python,必然要下载安装python的解释器;只有在编程平台上,我们编写的程序代码才有运行的可能。从某种意义上说,正是编程平台决定了编程语言的实质。如果编程平台有了一定的变化,可以认为编程语言也有了一定的变化。笔者看来为微软公司研发的Visual Studio编译C语言程序所对应的C语言语言,和GCC编程平台所对应的C语言是不尽相同的,极端情况下可以认为他们并不是相同的编程语言。GCC平台下完成的C语言程序可以编译成为可在硬件直接安装的操作系统,而VisualStudio平台编译运行的C语言程序则只能是.net程序,即特定的应用程序。为了完整全面讲解C语言,笔者选用GCC平台。 而当前大多数编程语言平台,本身就是一种应用程序。应用程序运行在操作系统之上。换而言之,应用程序本身也需要操作系统平台。出于同样的目的,笔者选用GCC平台,也推荐读者选用GCC平台对应的一种操作系统平台:Linux。笔者选用Linux平台的重要原因有二:第一,开源性,读者如果选用windows操作系统平台,由于windows操作系统是闭源的,我们无法清晰的看到windows操作究竟是如何运行我们的C语言代码,因为windows操作系统封装了底层的技术细节,并加以隐藏,这并不很利于我们接触到全面的技术细节。所以最佳方案是几乎完全透明的Linux;第二,Linux本身和C语言密不可分,笔者希望读者在充分掌握C语言之后能进一步熟悉Linux操作系统,进而掌握操作系统原理。 编写C语言代码,要用到GCC;要用到GCC,就要用到Linux。而真正伟大的程序员是不希望被任何事物约束自己手脚的。他一定是希望能够自己创造自己的操作系统,自己创造自己的平台,自己创造自己的编程语言,自己运用自己的一切。热爱自由,是人之本性。出于自由的考虑,笔者也不希望读者被约束住手脚。但是C语言毕竟是计算机大师的发明,我们借鉴大师的发明,那么就不能不暂时利用既有的平台。但是这样的平台应该是透明的,而不应该是黑箱。打个比方说,我们用菜刀切肉,我们同样也希望自己能够生产出菜刀。通过消化对菜刀制造的知识,我们就有可能积累铸造宝剑的知识。Linux和GCC提供了这种可能性,这也正是笔者推荐的理由。 无论是Linux还是GCC,都是一种软件。软件建立在硬件之上。没有硬件,一切都没有存在的可能。当前的计算机硬件设备,也是欧美国家的发明。在我们尚没有对应技术的前提下,也只能选用他们的技术设备。本书并不是讲解硬件原理的书籍,因此只是推荐读者尽可能采用X86体系的处理器,至于其他的硬件,如芯片组,内存,外存等设备,读者可以自由选用(实际上我们也没有多少选用空间,毕竟几乎都是被国外垄断的技术)。个人PC设备采用的通常都是X86体系设备,笔者建议读者可以选用intel主流的处理器。 为了让我们的硬件设备具体化。笔者推荐一组设备:i3-8100处理器,主流B360主板,DDR4内存,500G大小的机械硬盘,其他输入出设备可以任意选择,无关紧要。之所以这样推荐在于这样的硬件设备较为主流。部分读者可能有进一步接触底层的想法,比如设计自己的操作系统。读者对此表示非常赞赏,我们国家需要这样头脑聪慧,见识非凡,深究到底的人才!选择intel处理器,在于笔者注意到intel公司官方的处理器参考文档非常详尽,这非常有利于我们学习他们的处理器架构知识。如果我们能够通过他们的官方文档,在他们的处理器平台z上独立设计出拥有自己理念的操作系统,这就是超越他们的开始!这本身就提供了我们在自己的硬件基础设计出操作系统的软件技术可能!希望阅读本书的读者能够有这样的雄心壮志! 通过X86体系硬件,安装一种linux发行版本(所谓发行版本,就是可以直接下载安装的操作系统),然后在linux发行版本上安装笔者推荐的GCC平台(大多数linux发行版本都已经预装了GCC,所以这个步骤通常可以省略)。就可以开始我们的C语言学习旅程了。为了更加具体的让读者无障碍起步。笔者进一步说明平台配置步骤。  首先,读者可以按照笔者推荐的硬件清单组装一台电脑,键盘,鼠标,显示器,机箱,电源等外设不在本文讨论范围,因为这些外部设备通用性很强,因此笔者认为不必强调。如果读者认为组装电脑过于麻烦,可以直接购买一台内置intel处理器的台式机。笔者非常不推荐直接购买台式机,更加不推荐直接购买笔记本。笔者希望读者能够在尚对计算机技术一无所知的开端能够建立对硬件的基本认识。对于一本介绍编程知识的书籍来说,实在是无法利用大段篇幅说明如何组装一台电脑,请读者自行百度。任何一名有志于信息技术的人理应有这样的钻研精神研究如何组装一台机器。或者读者至少能够拆开机器去识别,何为处理器,何为内存,何为芯片组,何为南桥,何为北桥,主板上BIOS芯片在哪里,串口和并口是什么。  其次,读者理应能够独立安装一种linux发行版本。毫不讳言,笔者热爱linux操作系统。这种操作系统优美而强大。笔者推荐读者安装ubuntu linux。我们初次学习编程技术,能够有稳定的图形界面仍然是有必要的。ubuntu linux在图形界面的稳定性值得称道,它也适合新手建立对linux的良好印象。为了安装ubuntu,读者可以准备一个不小于8G的U盘设备。利用一台安装有windows系统的电脑(这样的电脑,在我们国家到处都是),在ubuntu官网下载ubuntu linux 18.04桌面版本,放在本地硬盘中。为了将ubuntu安装到自己的电脑上,读者要将ubuntu写入自己的U盘中,然后让自己的电脑以U盘启动,进而安装。而如何将下载的Ubuntu写入U盘呢?笔者推荐http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/网站的一个小小的写入U盘工具,universal usb installer。下载后双击打开这个写入工具,选择ubuntu,选择U盘设备,写入。这个过程非常简单,相信不必详细叙述。写入完毕后将U盘插入到自己的电脑上,以U盘启动,进而开始操作系统安装。安装过程同样非常简单,在此不再详细叙述。  再其次,当读者的电脑安装好Ubuntu 18.04之后,该操作系统将自带GCC。因此至此其实已经完成了我们学习C语言所需要的一切平台。为了书写代码的方便快捷,笔者建议读者在启动操作系统之后,打开终端(Ctrl+Alt+t),输入 sudo apt install vim。选择安装vim文本编辑器。终端是我们学习C语言始终身处的环境。在今后的章节,笔者将通过讲解C语言慢慢展开对linux的讨论,以使笔者能够自由运用它。 至此,我们学习linux的物质基础就已经准备就绪。下面,让我们开始和操作系统,和硬件,作第一次通话,写第一行C语言代码。

本文转自异步社区

软件开发 高性能计算

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:0x6 Java系列:java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
下一篇:deeplearn.js:在浏览器上训练神经网络
相关文章