深入 C 语言和程序运行原理
于航
PayPal 技术专家
21121 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
深入 C 语言和程序运行原理
15
15
1.0x
00:00/00:00
登录|注册

大咖助阵|LMOS:为什么说 C 语言是一把瑞士军刀?

待讨论(下篇文章)
用C语言实现
待讨论(下篇文章)
栈破坏
指针越界
未初始化的指针
函数调用机制
局部变量处理
全局变量处理
通过汇编代码理解
简单但技巧要求高
像一把锋利的瑞士军刀
局部变量和全局变量
函数和变量的使用
Hello World程序
可移植性和抽象编程机制
灵活的内存和寄存器操控
简单的类型系统和静态编译
UNIX家谱图展示发展历史
C语言提高了可移植性
初始版本使用汇编语言
为UNIX操作系统设计
由肯·汤普森和丹尼斯·里奇开发
基于BCPL语言发展
面向对象的编程方法
工程项目中的应用
C语言指针陷阱
C语言本质
C语言比喻
C语言示例
C语言特性
UNIX操作系统
C语言起源
C语言的应用和编程方法
C语言的难点
C语言和UNIX操作系统

该思维导图由 AI 生成,仅供参考

你好,我是 LMOS。
很高兴受邀来到这个专栏做一期分享。也许这门课的一些同学对我很熟悉,我是极客时间上《操作系统实战 45 讲》这门课的作者,同时也是 LMOS、LMOSEM 这两套操作系统的独立开发者。十几年来,我一直专注于操作系统内核研发,在 C 语言的使用方面有比较深刻的理解,所以想在这里把我的经验、见解分享给你。
操作系统和 C 语言的起源有着千丝万缕的联系,那么今天,我就先从 C 语言的起源和发展历史讲起。然后,我会从 C 语言自身的语法特性出发,向你展示这门古老的语言简单在哪里,又难在哪里。

C 语言、UNIX 的起源和发展

从英国的剑桥大学到美国的贝尔实验室,C 语言走过了一段不平凡的旅程。从最开始的 CPL 语言到 BCPL 语言,再到 B 语言,到最终的 C 语言,一共经历了四次改进。从 20 世纪中叶到 21 世纪初,C 语言以它的灵活、高效、通用、抽象、可移植的特性,在计算机界占据了不可撼动的地位。但是,C 语言是如何产生的?诞生几十年来,它的地位为何一直不可动摇?请往下看。

C 语言是两位牛人“玩”出来的

1969 年夏天,美国贝尔实验室的肯·汤普森的妻子回了娘家,这位理工男终于有了自己的时间。于是,他以 BCPL 语言为基础,设计出了简单且接近于机器语言的 B 语言(取 BCPL 的首字母)。然后,他又用 B 语言写出了 UNICS 操作系统,这就是后来风靡全世界的 UNIX 操作系统的初级版本。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

C语言:瑞士军刀般的技术魅力 C语言被誉为瑞士军刀,以其灵活、高效、通用、抽象、可移植的特性备受推崇。本文深入探讨了C语言的本质和难点,通过汇编代码展示了C语言的内部处理机制,以及指针可能带来的陷阱。C语言的简单性体现在其类型系统、静态编译、内存操控和可移植性等方面,但实际使用中却具有极高的技巧要求,类似于使用瑞士军刀,简单易用但对技术要求极高。 文章首先回顾了C语言的起源和其与UNIX操作系统的密切联系,强调了C语言的高效、简单、灵活和可移植性。通过观察汇编代码,读者能够了解C语言的本质,进而理解C语言指针可能带来的陷阱。这篇文章深入浅出地解释了C语言的本质和难点,使读者能够快速了解C语言的技术特点和挑战。 总之,本文展现了C语言的技术特点和挑战,为读者提供了对C语言的全面了解。对于想要深入了解C语言的读者来说,这是一篇值得阅读的文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入 C 语言和程序运行原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 杰良
    置顶
    C 语言与 UNIX 操作系统相互成就,可以说是比 UNIX 走得更远,尤其是在广阔的嵌入式领域。C 语言简洁有力的语法特点,能在小到单片机程序达到 Linux 操作系统上玩出花来。 当然,强大灵活的代价就是容易用错,误伤自己。包括遭受非法攻击的风险也是特别需要注意的。
    2021-12-20
    2
  • 胡子拉差的我
    用的什么编译器?

    编辑回复: 我问过LMOS啦,是GCC

    2021-12-25
  • =
    通篇读完,“有趣而有益”。 “有趣”是指在阅读中了解了与C语言相关的历史背景知识;“有益”是指开卷有益——指针的不良使用对于栈的破坏是我获得的新知识。 读完后开始期待(下)篇的内容。
    2021-12-20
    2
  • sky
    请教一下大家,陷阱三 代码中的*l— =(long)test;这里的test是在哪里定义的?
    2021-12-20
    4
    1
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部