C语言 - C语言简介
一、C语言的发展史
C语言的发展离不开B语言,我们先从B语言说起。在1970年时,贝尔实验室的肯.汤姆逊将BCPL语言进行修改,由于肯.汤姆逊是从BCPL语言进行修改,因此,此时B语言就诞生了,B的含义就是肯.汤普逊觉得他所完善的语言是BCPL语言的精华,因此就只取B这个字母。
在1973年时,又一位贝尔实验室的大佬,也就是丹尼斯.里奇,根据肯.汤普逊的B语言,将B语言进行提炼,最后产生了一种精华的产物,就是C语言,现在是不是就知道C语言为什么语法那么的简单,这都是一代代大佬提取计算机语言,留下的精华产物。
C语言为什么叫C语言那,我个人觉的有两种解释,其一是C字母在B字母之后,代表着语言的进一步升华,其二是因为B语言是来自于BCPL语言的,而且取的是第一个字母B,而C语言是对B语言的进一步升华,因此我就取第二个字母C。
有BCPL语言到C语言,我们可以看做是肯.汤普逊和丹尼斯.里奇分部进行开发的。因此,一般来说C语言是这两人一起开发的结晶。
如果有了解计算的操作系统的人,都会知道UNIX系统、linux系统,如果前面两个不了解。还有一种就是windows系统,这个每个人应该都知道。
C语言的发展和UNIX是密切相关的,但最初的目的却是为了玩游戏,这里的玩游戏不是真正意义上的玩游戏,而是实现游戏代码在不同机子之间是否能通用,也就是现在说的可移植性。
Linux操作系统最初的目的也是玩游戏,这个也还能有意思。
二、C语言的特点
1、C语言由于是为写UNIX系统而生的,因此可以说他是专门用来写操作系统的,因此它更容易控制硬件
2、C语言语法简单,主要由32个关键字组成,一般了解了32个关键字,基本上就对C语言有些了解
3、C语言非常的灵活,而灵活的灵魂在于指针,一个好的C语言工程师,必定对指针有一定的建树。注:灵活也意味着容易出错
4、C语言是结构化的语言,所以代码看起来会更加的易懂,也就是可读性,此时,维护的时候,安全性也会大大提高
三、C语言的现状与就业方向
现状:有人统计过,当今语言排名第一是java,第二是C++,第三C,而C语言经过50年的发展,一出生就是巅峰,至今未下过排名前3,可以说是主流语言。
就业方向:C语言做电子设备的比较多,比如嵌入式行业就用的C语言。手机软件,硬件驱动,网络安全方面的也有,如防火墙之类的。还有现在比较流行的数字机顶盒,路由器,监控安防方面等等都用C语言开发的。如果想进一步的话,可以去学习一下C++。大多网络游戏就是C++编写的,如果是向游戏开发发展的话,学C++比较合适,Java因为自身体系等原因,在性能控制上不如C++,而手机软件开发的话,则Java更胜任。
四、C语言的编译过程
1.编辑 :程序员自己写的代码,文件格式是以.c结尾的
2.预处理 :预处理器会把程序员写的代码,翻译成标准C语言的代码,这个过程就叫做预处理。文件名是以.i结尾的
处理指令:1、gcc -E 文件名(例如,hello.c)
2、gcc -E 文件名 -o hello.i 此时,就是把预处理的结果放在.i结尾的文件中
3.汇编 :就是把预处理后的文件(以.i结尾的文件)编译成汇编文件(以.s结尾的文件)
处理指令:gcc -S hello.i
4.编译 : 以. s结尾的汇编文件编译成以.o结尾的目标文件(二进制文件)
处理指令:gcc -c hello.s
5.链接 :把若干个.o文件合并成一个可执行文件(a.out)
处理指令:gcc hello.o (其他.o文件)... 此命令会自动生成a.out名字的可执行文件
gcc hello.o -o hello 此命令就是可以更改可执行文件的名字,变成hello
C语言 - C语言简介的更多相关文章
- 29 A Quick Guide to Go's Assembler 快速指南汇编程序:使用go语言的汇编器简介
A Quick Guide to Go's Assembler 快速指南汇编程序:使用go语言的汇编器简介 A Quick Guide to Go's Assembler Constants Symb ...
- 转 C语言编译过程简介
C语言编译过程简介 C语言编译过程简介 刚开始接触编程的时候,只知道照书敲敲代码,一直都不知道为什么在windows平台下代码经过鼠标那样点击几下,程序的结果就会在那个黑色的屏幕上.现在找了个机会将C ...
- OC语言-02-OC语言-基础知识
一.基础语法 1> OC语言和C语言 C语言是面向过程的语言,OC语言是面向对象的语言 OC语言继承了C语言,并增加了面向对象的思想 以下内容只介绍OC语言与C语言的不同之处 2> 关键字 ...
- 国家语言,语言代码,locale id对应表
国家语言,语言代码,locale id对应表.比如 en_US对应的id为1033, 中文的locale=zh_CN,id=2052. Locale Languagecode LCIDstring L ...
- Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言
Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言 1. 编程语言的主要的种类 逻辑式语言..函数式语言...命令式语言 1 2. 逻辑式语言,,不必考虑实现过程而 ...
- Atitit.go语言golang语言的新的特性 attilax总结
Atitit.go语言golang语言的新的特性 attilax总结 1. 继承树less 动态接口1 1.1. 按照书中说的,Go语言具有以下的特征,下面我们分别来进行介绍. q 自动垃圾回收 ...
- 关于"动态语言" "静态语言" "静态类型语言" "动态类型语言"的区别
参考链接:关于“编译型”“解释型”“动态语言”“静态语言”“动态类型语言”“静态类型语言”的区分以及优缺点(汇总整理) 很多人把这两类混为一谈,但是这是完全不同的两个概念!!! 动态和静态语言主要看的 ...
- 编程小白必备——主流语言C语言知识点
对于编程语言来说,经常看到有因为各自支持的语言阵营而互怼的,其实根本没那个必要,都只是一种工具而已.当多数主流语言都会使用时也许你就不会有偏见了,本质不过都是用来描述计算机的一个任务,只是每门语言设计 ...
- go语言之行--简介与环境搭建
一.Go简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后 ...
- C语言基础-C简介
C语言简介 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 19 ...
随机推荐
- mysql——单表查询——聚合函数——概念
使用聚合函数查询 group by关键字通常和聚合函数一起使用 .count()函数 count()函数用来统计记录的条数 举例:使用count()函数统计employee表的记录数 select c ...
- ios模拟器快捷键
shift+cmd+h 返回桌面 cmd+5或者4或者3 可以直接调节大小 cmd+R运行项目 cmd+R弹出键盘 ios模拟器弹出键盘 在xcode6中, 模拟器中的键盘和电脑的键盘可以进行绑定 ...
- 使用自定义View
1 关于自定义的View的构造函数 java中对构造函数只是调用,不继承.因为整个UI是android系统提供的框架,因此构造函数需要写成它要求的格式,即和View的构造函数一样. 自定义的View中 ...
- Log的相关用法
1.最好用静态final定义Log变量 private static final Log log = LogFactory.getLog(MyTest.class); 这样做的好处有三: 可以保证线程 ...
- vim中代码按照行对齐。
在vim下, 用命令v, 然后移动光标,选种你的文本, 然后按下=键, 看看效果如何吧.
- str 小列题
name = " aleX leNb "#2.有变量 完成如下操作: 移除 name 变量对应的值两边的空格,并输出处理结果 name=name.strip() print(nam ...
- Java Web开发技术教程入门-静态网页技术
昨天了解了构建动态网站的几种技术:Servlet技术.JSP技术,ASP技术和ASP.NET技术以及PHP技术.昨天的精髓在于JSP技术的运行原理:通过用户请求JSP文件,首先检查JSP文件的 ...
- .net几种timer区别
概述:.net框架不同名称控件都包含了各种timer,但每个timer有什么具体区别呢? 一.System.Threading private static void ThreadingTimer() ...
- js 判断图片是否存在
有的时候 虽然图片的路径是正确的 但是有可能由于某些原因 导致图裂了 或者网络加载失败 那这样的应该怎么判断呢? 如下: function isHasImg(pathImg){ var Img ...
- SSH自动登录config文件配置
title: SSH自动登录config文件配置 comments: false date: 2019-08-19 19:29:13 description: 更方便的 ssh 操作??? categ ...