一、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语言简介的更多相关文章

  1. 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 ...

  2. 转 C语言编译过程简介

    C语言编译过程简介 C语言编译过程简介 刚开始接触编程的时候,只知道照书敲敲代码,一直都不知道为什么在windows平台下代码经过鼠标那样点击几下,程序的结果就会在那个黑色的屏幕上.现在找了个机会将C ...

  3. OC语言-02-OC语言-基础知识

    一.基础语法 1> OC语言和C语言 C语言是面向过程的语言,OC语言是面向对象的语言 OC语言继承了C语言,并增加了面向对象的思想 以下内容只介绍OC语言与C语言的不同之处 2> 关键字 ...

  4. 国家语言,语言代码,locale id对应表

    国家语言,语言代码,locale id对应表.比如 en_US对应的id为1033, 中文的locale=zh_CN,id=2052. Locale Languagecode LCIDstring L ...

  5. Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言

    Atitit.编程语言的主要的种类and趋势 逻辑式语言..函数式语言...命令式语言 1. 编程语言的主要的种类 逻辑式语言..函数式语言...命令式语言 1 2. 逻辑式语言,,不必考虑实现过程而 ...

  6. Atitit.go语言golang语言的新的特性  attilax总结

    Atitit.go语言golang语言的新的特性  attilax总结 1. 继承树less  动态接口1 1.1. 按照书中说的,Go语言具有以下的特征,下面我们分别来进行介绍.  q 自动垃圾回收 ...

  7. 关于"动态语言" "静态语言" "静态类型语言" "动态类型语言"的区别

    参考链接:关于“编译型”“解释型”“动态语言”“静态语言”“动态类型语言”“静态类型语言”的区分以及优缺点(汇总整理) 很多人把这两类混为一谈,但是这是完全不同的两个概念!!! 动态和静态语言主要看的 ...

  8. 编程小白必备——主流语言C语言知识点

    对于编程语言来说,经常看到有因为各自支持的语言阵营而互怼的,其实根本没那个必要,都只是一种工具而已.当多数主流语言都会使用时也许你就不会有偏见了,本质不过都是用来描述计算机的一个任务,只是每门语言设计 ...

  9. go语言之行--简介与环境搭建

    一.Go简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后 ...

  10. C语言基础-C简介

    C语言简介  C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的.C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现. 在 19 ...

随机推荐

  1. 向tabcontrol中添加form

    昨天花了一天的时间去找一个错误,关系是这样的,我添加一个tabcontrol就叫tc1好了,然后在tc1中再动态添加一个父窗体l叫form1,要把form1添加进tabcontrol就要先新建一个ta ...

  2. IOMETER的简单使用

    1. 网上下载文件: 一般至少包含两个: 2. 使用IOmeter 进行 功能测试. 注意选择 测试需要的盘 注意 选择的磁盘 会被充满. 会产生一个特别大的文件 3. 选择测试对象 4. 可以查看实 ...

  3. 再谈PG索引-存储架构

    1.索引的基本架构 PG的索引是B+树,B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中,各叶节点指针进行连接: meta ...

  4. div距离左边设置

    margin-right:不加负号, margin-left:必须加负号,理解为倒数 margin-left:-10px;

  5. spring boot 是如何利用jackson进行反序列化的?

    以下面的代码为例: @RestController public class HelloController { @RequestMapping("/") public BillS ...

  6. 在线JSON转Go 结构体,在线JSON转Go Struct

    在线转换https://oktools.net/json2go

  7. python全栈开发教程目录

    python入门到进阶 Python基础2——数据类型的操作 Python基础——函数入门 Python基础——函数进阶 Python基础——函数的装饰器 Python基础——函数的装饰器 Pytho ...

  8. linux格式化磁盘命令

    linux格式化磁盘命令           linux mkfs         指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-opti ...

  9. linux命令详解——ln

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...

  10. LAMP,LNMP 环境编译参数配置详解

    1)查看 web 服务的编译参数 a.查看 nginx 的编译参数: /home/oldboy/run/nginx/sbin/nginx -V 范例 1: [root@VM-001 ~]# /home ...