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 ...
随机推荐
- 反复横跳的瞄准线!从向量计算说起!基于射线检测的实现!Cocos Creator!
最近有小伙伴问我瞄准线遇到各种形状该怎么处理?如何实现反复横跳的瞄准线?最近刚好在<Cocos Creator游戏开发实战>中看到物理系统有一个射线检测,于是,基于这个射线检测,写了一个反 ...
- CDH开启ldap
参考: 官网ldap: https://www.cloudera.com/documentation/enterprise/6/6.2/topics/cm_sg_ldap_grp_mappings.h ...
- [百度知道]ssm和ssh各自的优势
https://zhidao.baidu.com/question/875108451824176892.html SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernat ...
- win10的64位操作系统安装Oracle、Sql数据库遇到的问题及解决
因为工作需要,在重新安装操作系统(Win10)不久的电脑上安装Oracle的客户端(win32_11g)和PLSQL,这个本来就比较复杂,下面记录一下遇到的问题及解决方法. 我有储备多个Oracle的 ...
- CodeForces-520E Pluses everywhere
题目描述 给出一个长度为 \(n\) 的字符串,给出一个非负整数 \(k\),要求给这个字符串中间添加 \(k\) 个$\(+\)'号,变成一个表 达式,比如"\(1000101\)&quo ...
- Linux学习大纲(高人整理)
1.Linux初级 1.1 OS操作系统的原理 1.2 了解常用命令 开机关机 时间管理:date cal clock 1.3 目的结构.目的管理 树形结构 tree cd 1.4 文件管理.文件查找 ...
- 【转载】Django自带的注册登陆功能
1.登陆 知识点: a.auth.authenticate(username=name值, password=password值) 验证用户名和密码 b.auth.login(request, use ...
- 经典Spring入门基础教程详解
经典Spring入门基础教程详解 https://pan.baidu.com/s/1c016cI#list/path=%2Fsharelink2319398594-201713320584085%2F ...
- Hibernate 最简单实例
我从网上下载了 hibernate-release-4.3.0.Final.zip,解压缩,把/lib/required文件夹下的所有jar包加入到eclipse项目中的Referenced Libr ...
- Linux之RedHat7如何更换yum源
目前,我们常见的系统大概就是Windows.Linux和Mac OS了.Windows系统应该是大部分人最早开始接触的系统,毕竟Windows系统使用起来相当方便,只需要点点鼠标,外加会简单的打字,一 ...