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 ...
随机推荐
- ${pagecontext.request.contextpath}绝对路径理解
${pageContext.request.contextPath}是JSP取得绝对路径的方法,等价于<%=request.getContextPath()%> .也就是取出部署的应用程序 ...
- IDEA 双击只选择了一个变量的某部分单词
1,很多抄袭文章说 在keymap 里搜索 select Word at caret , 鄙视手动抄袭和编写爬虫来 作恶的开发者. 2,自己试了,File菜单 ----> settings- ...
- PTA 7-20 表达式转换
转自:https://www.cnblogs.com/yuxiaoba/p/8399934.html 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.日常使用的算术表达式是采用中缀表示法,即二元 ...
- nodejs以对象做对象的key导致value一直被覆盖
问题描述 在开发中,实现技能状态的事件监听功能时,将状态对象作为key,存入事件管理器的监听列表,如下图: 实现后,运行程序,并没有报错,但是当某个事件发生时,只有一个状态被触发监听,而大多数状态 ...
- 开启linux服务器防火墙
启用ufwsudo ufw enablesudo ufw default deny运行以上两条命令后,开启了防火墙,并在系统启动时自动开启.关闭所有外部对本机的访问,但本机访问外部正常. 开启和禁用s ...
- Elasticsearch操作索引
目录 操作索引 1. 基本概念 2. 创建索引 2.1 语法 2.2查看索引设置 2.3.删除索引 2.4 映射配置 2.5 新增数据 2.6 修改数据 2.7 删除数据 3. 查询 3.1 基本查询 ...
- java延时队列
应用场景 1)7天自动收货 a.用户支付完成以后,把订单ID插入到内存的一个DelayQueue中,同时插入到Redis中. b.7天之内,用户点击了确认收货,则从DelayQueue中删除,从Red ...
- C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...
原文:C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是... 原文由Rector首发于 码友网 之 <C#/.NET/.NET ...
- Scala学习笔记(3)
数组 ----------------------------------- 0.若长度固定则用Array,若长度可能变化则使用ArrayBuffer 1.提供初始值的时候不要使用new. 2.用() ...
- ELK-全文检索技术-kibana操作elasticsearch
前言:建议kibana语法一定要学好! 1 软件安装 1.1 ES的安装 第一步:解压压缩包,放到一个没有中文没有空格的位置 第二步:修改配置文件 1. jvm.options ...