当前位置: 首页 > news >正文

【C语言】C 语言为什么叫 C 语言呢?

【C语言】C 语言为什么叫 C 语言呢?

笔记改自于王道训练营资料
其实是因为先有高级语言ALGOL 60,简称 A 语言,后来经过简化,变为 BCPL 语言,简称 B 语言,而 C 语言是在 B 语言的基础之上发展而来的,所以就称为 C 语言。所以世界上第一个 C 语言的编译器是用 B语言编写的。
目前主流的编译器是微软的masm(Microsoft Visual Studio 使用的),还有就是Linux 使用的gcc编译器(Mac 电脑也使用该编译器),学习一堆 C 的版本及标准意义不大,关键是掌握编译器支持的语言特性,接下来的八章我们所讲的 C 语言内容无论是在 Windows,还是 Linux 及 Mac,都可以编译通过。

UNIX

1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供 30 台终端(30 个键盘、显示器),连接一台电脑
为了解决数量不够用的问题

  • 1965 年左后由贝尔实验室加入了麻省理工学院以及通用电气合作的计划 —该计划要建立一套多使用者 (multi - user) 、多任务 (multi - processor) 、多层次 multi- level) 的 MULTICS 操作系统,想让大型主机支持 300 台终端
  • 1969 年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
  • 1969 年从这个项目中退出的Ken Thompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行 “星际旅行(Space Travel)” 游行,在 8 月份左右趁着其妻子探亲的时间,用了1 个月的时间,使用汇编写出了Unix 操作系统的原型
  • 1970 年,美国贝尔实验室的Ken Thompson,以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并且他用B 语言 写了第一个 UNIX 操作系统
  • 1971 年,同样酷爱 “星际旅行(Space Travel)” 的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发 UNIX,他的主要工作是改造 B语言,因为 B 语言 的跨平台性较差
  • 1972 年,Dennis M.Ritchie 在 B 语言 的基础上最终设计出了一种新的语言,他取了 CPL 的第二个字母作为这种语言的名字,这就是C 语言
  • 1973 年初, C 语言的主体完成,Thompson 和 Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix 操作系统

    == 肯·汤普逊(左)和丹尼斯·里奇(右)==

C 语言

  • 在把 UNIX 移植到其他类型的计算机上使用时, C 语言强大的移植性(Portability)在此显现

    • 机器语言和汇编语言都不具有移植性,为 x86 开发的程序,不可能在Alpha,SPARC 和 ARM 等机器上运行
  • 而 C 语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应
    的 C 语言编译器和库
    ,然后将 C 源代码编译、连接成目标二进制文件之后即可运

    《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

面试真题/经验

以上资料如何领取?

https://i-blog.csdnimg.cn/img_convert/2a690cdb788e4b8698c94a5e32fdbeb7.jpeg)

http://www.jsqmd.com/news/885876/

相关文章:

  • InVideo插件深度解析:如何在Unreal Engine中实现高效视频流播放与录制
  • 告别资源加载混乱:用Unity Addressable的Group设置精细化管理你的AssetBundle
  • STM32 CAN时间戳功能实战:CubeMX配置避坑与收发时间戳获取全流程
  • 别再手动K帧了!用Mixamo+Unity 2022快速给3D角色绑定走路、跑步动画(附完整项目文件)
  • Unity Addressable热更踩坑实录:从本地模拟到CCD上线的完整避坑指南
  • Burp Suite浏览器证书安装:动态CA信任链实战指南
  • 律所案件管理系统选型:主流工具的功能、价格与适用场景对比
  • 无GPU训练边缘AI语音模型:MAX78000关键词唤醒实战指南
  • 告别大包更新!用Unity Addressable + CCD实现手游资源热更(保姆级图文教程)
  • 3分钟掌握AI视频字幕去除终极技巧:Video Subtitle Remover完整指南
  • 别再死记硬背了!用UE材质里的点积、叉积,5分钟搞定模型表面动态光效
  • Unity Timeline信号(Signal)轨道实战:告别硬编码,实现灵活的事件驱动交互
  • 联想拯救者 Y9000P 常用快捷键与功能详解
  • Adobe-GenP 3.0:轻松激活Adobe全家桶的完整指南
  • 5分钟上手OpenVSP:NASA开源飞机参数化设计工具终极指南
  • PentestGPT:Kali本地部署的AI渗透测试协作者
  • 如何快速将Taotoken接入Python项目实现大模型调用
  • UE5.2 PCG实战:像搭积木一样组合关卡!用PCGSettings实现模块化场景设计与高效复用
  • AI书信、官网制作、益智游戏、科普知识……灵珠平台激发全民创造力
  • 告别资源管理混乱!用Unity Addressable的Group模板与初始化对象,打造可复用的项目配置流水线
  • php有什么版本,php语言有几个版本
  • 基于NodeMCU与RC522的物联网门禁系统:从硬件连接到云端管理
  • phpMyAdmin文件包含漏洞CVE-2018-12613深度解析
  • “API网关突然吞掉37%请求”——Claude流量染色与灰度路由设计(故障复盘+可复用代码片段)
  • Unity烘焙光照贴图,为什么我的动态物体‘穿帮’了?手把手教你用Light Probe解决
  • 基础Mirau干涉仪的仿真
  • 【2025】AWVS安装保姆级教程(最新25.1.2可用)
  • UE5蓝图实战:用程序化网格体组件实现鼠标点击切割任意模型(附完整项目文件)
  • Unity Addressable热更新踩坑实录:从本地测试到CCD云端部署,我遇到的5个关键问题
  • 2026 沈阳装修市场行情 + 5 家口碑公司推荐(本土龙头领衔) - 品牌智鉴榜