第1章 为什么要学C语言
- 格式:ppt
- 大小:341.00 KB
- 文档页数:13
C语⾔程序设计(⼀)为什么要学C语⾔第⼀章为什么要学C语⾔学编程的过程,其实就是学习怎样⽤编程语⾔说话,让编译器听懂的过程。
汇编语⾔缺少“可移植性”除了机器语⾔和汇编语⾔以外,⼏乎所有的编程语⾔都被统称为⾼级语⾔,它的特点是更接近⾃然语⾔,⽽与机器语⾔基本没有⽠葛。
不同的⾼级语⾔编译器,可以把同样的⾼级语⾔程序翻译成适应不同机器的指令,因⽽⾼级语⾔⼤多具有较好的可移植性。
ken和der的可爱之处:1. 做事情以兴趣为出发点,并不在乎未来会怎样2. 极富钻研精神,喜欢迎接挑战3. 乐于分享,不计回报⿊客是计算机和互联⽹的缔造者,是⼀种独特的⽂化。
如果⼀件事情可以⽤X语⾔做,就⼀定不要⽤C语⾔做。
C诡异离奇,缺陷重重,并获得巨⼤成功。
C语⾔设计原则的第⼀条是:信任程序员。
C语⾔完全满⾜⼈们对效率的苛求,精⼼设计的代码可以极⼤的节约资源,⼜不像汇编语⾔那样难⽤,所以受到程序员的欢迎。
现在还需要使⽤C语⾔的地⽅,⼤概只限于4个领域:1. C语⾔仍是编写操作系统的不⼆之选2. 在对程序的运⾏效率有苛求的地⽅3. 在需要继承和维护已有的C代码的地⽅4. 思想交流的⾸选媒介语⾔C语⾔很适合作为⼊门级语⾔,这并不是C语⾔⾃⾝决定的,⽽是中国庞⼤的C语⾔教育体系决定的。
关于C语⾔的书籍资料、论坛、习题和教辅系统是最多的,⽽且⽆⼀例外都是⾯向程序设计的初学者。
计算思维代表着⼀种普遍的认识和⼀类普适的技能,每⼀个⼈,不仅仅是计算机科学家,都应热⼼于它的学习和应⽤。
编程是编写程序的简称,术语称为程序设计,程序是计算机的主宰,控制着计算机该去做什么事,所有托付给计算机去做的事情都要被编写成程序。
程序设计的步骤:1. 需求分析2. 设计:搞明⽩计算机该怎么去做这件事:设计算法、数学建模,⽤数学的⽅法对问题进⾏求解;设计程序的代码结构,使程序易于修正、扩充和维护3. 编写程序:把设计的结果变成⼀⾏⾏代码,输⼊到程序编辑器中4. 调试程序:将源代码编译变成可执⾏的程序,然后运⾏,看看是否能够满⾜要求。
为何要学习C语言,以及如何学习C语言有关为何要学习C语言以及如何学习C语言这个话题,可以说和“一千个读者就有一千个哈姆雷特”一样,每个人都有每个人的见解和学习方式。
回想起10年前的那个暑假,自己跟着某天翔七天学会单片机的视频教程一步一步学习C语言、单片机的日子,不由得感慨万千,想起自己在开发路上走过的路,坎坎坷坷。
废话说多了,,,有关本文的主题,个人感觉,这个首先该看自己的定位在哪,不同的目的会有不同的过程,一般学习C语言分为以下几种情况:1.学校开设这门课程,学习C语言仅仅是为了应付考试。
如果是这种情况,跟着老师步子走,把课后题多做一些,多上机练一练,考个高分还是不成问题的。
2.业余编程,把C语言当成一种爱好。
如果是这种情况,可以较为深入的学习一下C语言,多看一些源码,看看别人怎么用的,然后多多将自己的实际问题转化成C代码实现一下就OK了。
3.要从事其它语言开发,把C语言当成一种敲门砖。
这种情况比较复杂,因为我曾经走过这条路子,14年曾经尝试着转纯软件开发,后来感觉那种日子不如搞软硬结合来的爽快、成就感强,就放弃了。
抱这种目的的,也分情况,如果是从事web开发这个方向,学不学C 语言作用都不是很大,尤其是从事前端开发,有没有C基础,几乎对前端的学习没有一点帮助。
如果是从事后端开发,有C基础肯定比没有好点,但是这种付出不成比例,C指针那块太耗时、耗力,建议直接上后端开发语言(比如Java、php等)即可。
4.嵌入式开发。
这种情况,如果纯裸机开发,就掌握了C基础以后,多看别人的代码,多学编程思路,多使用结构体封装,多使用模块化编程,便于代码移植、复用,多从项目整个框架的层面考虑就可以了。
如果是开发比较轻量级的系统,比如FreeRTOS、uCOS等,可以掌握C基础以后,直接上源码即可,多研究下这些系统的功能是如何实现的,掌握指针与数组、函数的关系,然后多加分析、练习就差不多了。
这种情况,建议当你感觉到没什么进步的时候,找一个固定平台学习一下汇编,推荐ARM平台的汇编,因为ARM汇编标准化比较高,而且将来一定是ARM的天下,现在Cortex-M0核的MCU已经2块钱以下了,低端到高端产品线超级丰富,选择性太好了,还犹豫啥呢?!对照着指令手册,慢慢分析下自己的C源码产生的汇编是什么样子、该如何优化,看下自己的C代码的变量、函数等内容的地址是怎么分布的、字节对齐有什么效果等等,调试的时候多借助下映射、链接文件,会极大提高调试效率。
学习c语言的理由
学习c语言具有重要意义,下面将从几个角度来阐述它的重要性。
首先,C语言是一种通用的编程语言,涉及到许多其他语言,可以用于开发一些复杂的程序。
C语言可以让我们创建操作系统、嵌入系统、移动应用程序和桌面应用程序。
可以说,如果不掌握C语言,要想做计算机科学家的梦想,几乎是不可能实现的。
其次,C语言是计算机语言中功能强大的一种,它具有诸如强大的循环结构、类型安全、指令灵活等性能特点,它可以创建像文件、内存、数组或复杂的算法等的丰富的程序功能。
这使得C语言能够在更容易的方式中去创建更有效的程序,也使它在开发高级的程序中占据重要地位。
此外,C语言还可以用于为一些流行的软件创建底层的核心结构,这可以是内核的一部分,也可以是一些流行的游戏、数据库等。
最后,C语言相比其他编程语言非常简单易懂。
它有一个简单的语法及一组短小精悍的关键字。
因此,学习C语言可以更加容易、快捷,有利于入门学习其他语言。
总之,C语言有它自身的重要性,可以为我们提供许多令人惊叹的编程解决方案。
从而可以为我们带来良好的发展机遇。
所以,学习C 语言是非常有意义的,值得投入精力去提高自己的编程技能。
对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。
也许你将来的工作或学习不会使用C语言,但是它能让你了解编程相关的概念,带你走进编程的大门,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。
也只有C语言的教程(书籍、在线教程、视频等)才会介绍最基本的编程概念,手把手教你从零学会写代码;其他编程语言(C++、Java等)大都一带而过,对基础介绍很少。
如果你从例如C++、Java、PHP等开始学习编程,会发现非常吃力,不知所云,甚至无法掌控。
C语言语法简单精炼,概念少,效率高,包含了基本的编程元素,后来的很多语言(C++、Java等)都参考了C语言,说C语言是现代编程语言的开山鼻祖毫不夸张,它改变了编程世界。
正是由于C语言的简单,对初学者来说,学习成本小,时间短,结合本教程,能够快速掌握编程技术。
C语言不但执行效率高(比C++、Java都高),而且应用广泛,可以用来开发桌面软件、硬件驱动、操作系统、单片机等,从微波炉到手机,从汽车到智能电视,都有C语言的影子。
所以说,学习一门年龄比自己还大的语言很有必要(C语言诞生于20世纪70年代初)。
当然,C语言也不是没有缺点,毕竟是70后老人,有点落后时代。
不过这里不讲,讲了你也不明白,以后你自然会了解。
我们为什么要学习C语言?C是写操作系统最常使用的编程语言(译注:没有之一)。
Unix 是用C写的第一个操作系统。
后来Microsoft Windows,Mac OS X,还有GNU/Linu也都是用C写的。
C不仅是操作系统的语言,也是其它几乎所有今天最流行的高级语言的先驱和灵感来源。
事实上,Perl,PHP,Python和Ruby都是用C写的。
通过类推的方式,让我们这么说你一直在学的西班牙语、意大利语、法语或者葡萄语。
你想过知道点拉丁语会很有用吗?因为拉丁语是所有这些语言的基础,了解了C,你就能理解和欣赏建构在传统C之上的整个编程语言家族。
懂得C,就拥有了自由。
为什么是C,而不是汇编语言?汇编语言提供了速度和最大的编程可控性,C提供的是可移植性。
不同的处理器必须采用不同的汇编语言来编程,必须选择其中一种,只能学习其中一种,这太*了。
事实上,面对众多的计算机架构,C的一个主要优势在于其通用性和可移植性,而将硬件层的大多控制留给了汇编语言。
例如,C程序可以编译运行在如下设备上,HP 50g计算器(ARM 处理器)、TI-89计算器(68000处理器)、Palm OS Cobalt智能手机(ARM处理器)、原始的iMac(PowerPC)、Arduino(Atmel AVR)和Intel iMac(Intel Core 2 Duo)。
这些设备每个都有自己的专有汇编语言,并且完全不兼容于任何其它一个设备的汇编语言。
汇编语言,很强大,但很难去编写大型应用程序,很难以逻辑方式去阅读和解释。
C是一种编译语言,可以产生快速有效的可执行文件。
C也是一个小型“所见即所得”语言:一个C语句最多对应着几个汇编语句,其它都以库函数的形式提供。
所以这就是C是如此流行的语言的原因?就像推度多米诺骨牌一样,下一代的程序跟随着它的先辈的足迹。
用C设计的操作系统通常都有用C设计的系统库。
这些系统库反过来用于构建高级库(如OpenGL,或者GTK),这些库的设计者通常又会采用系统库所使用的语言。