一、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. Vim命令合集(四)

    Vim命令合集 命令历史 以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令. 启动vim 在命令行窗口中输入以下命令即可 vim 直接启动vim vim filena ...

  2. SpringBoot如何使用PUT、DELETE请求方式

    SpringBoot 2.2.X默认不支持put,delete等请求方式的. 首先需要在配置文件中打开他们,代码如下: spring.mvc.hiddenmethod.filter.enabled=t ...

  3. java_第一年_JDBC(1)

    JDBC(Java Data Base Connectivity),用于实现java语言编程与数据库连接的API. 数据库驱动:应用程序并不能直接使用数据库,而需要通过相应的数据库驱动程序后再操作数据 ...

  4. CF 11D A Simple Task 题解

    题面 这道题的数据范围一看就是dfs或状压啦~ 本文以状压的方式来讲解 f[i][j]表示目前的节点是i,已经经历过的节点的状态为j的简单环的个数: 具体的转移方程和细节请看代码: PS:(i& ...

  5. HDU 3182 ——A Magic Lamp(思维)

    Description Kiki likes traveling. One day she finds a magic lamp, unfortunately the genie in the lam ...

  6. 3种Redis分布式锁的对比

    我们通常使用的synchronized或者Lock都是线程锁,对同一个JVM进程内的多个线程有效.因为锁的本质 是内存中存放一个标记,记录获取锁的线程是谁,这个标记对每个线程都可见.然而我们启动的多个 ...

  7. js 学习二 字符串常用方法

    1.字符串长度 string.length var browserType = 'mozilla'; browserType.length; //7 2在字符串中查找子字符串 string.index ...

  8. 重置Brocade光纤交换机的管理IP地址

     1.使用串口登录光纤交换机 使用RS/232 (9针)串口连接线将笔记本连至交换机的串口. 输入以下参数: Bits per second (每秒位数): 9600 Data Bits (数据位): ...

  9. SpringBootMybatis02 mybatis-generator-gui|pageHelper|前后端分离|Filter权限实现

    一.Mybatis-generator-gui 下载地址:https://github.com/LittlePageProgram/mybatis-generator-gui.git 使用方法:填写相 ...

  10. TCP/IP的网络客户端和服务器端程序

    服务器端的过程可以分为以下几个步骤: (1)  初始化套接字的版本信息WSAStartup (2)创建套接字 ,需要两个套接字及客户端和服务器端的套接字 (3)绑定服务器(bind),该函数用于绑定服 ...