【《C Primer Plus》读书笔记】第1章:初识C语言

【《C Primer Plus》读书笔记】第1章:初识C语言,第1张

第1章:初识C语言

C是一门功能强大的专业化编程语言。

1.1 C语言的起源

C 语言是贝尔实验室的 Dennis Ritch 于1969年~1973年间在开发 UNIX *** 作系统时创建的。

美国国家标准学会(American national standards institute,ANSI)在1989年颁布了 ANSI C 的标准,后来语言的标准化成了国际标准化组织(International Standards Organization,ISO)的责任。

这些标准定义了 C 语言和一系列函数库,即所谓的C标准库。

Kernighan 和 Ritch 在他们的经典著作中描述了 ANSI C,这本著作被人们满怀感情地称为 “K8R”。

用 Ritch 的话来说,C 语言是“古怪的、有缺陷的,但同时也是一个巨大的成功”。

C语言之父:丹尼斯·里奇 人物简介 记:丹尼斯·里奇(Dennis Ritch)

为什么C语言会成功呢?

  • C语言与Unⅸ *** 作系统关系密切
    C 从一开始就是作为一种用于Unix系统的程序语言开发出来的。

    大部分Unix内核( *** 作系统的核心部分),以及所有支撑工具和函数库都是用C语言编写的。

    20世纪70年代后期到80年代初期,UNIX 风行于高等院校,许多人开始接触 C 语言并喜欢上它。

    因为 UNIX 几乎全部是用C编写的,它可以很方便地移植到新的机器上,这种特点为 C 和 UNIX 赢得了更为广泛的支持。

  • C语言小而简单
    C 语言的设计是由一个人而非一个协会掌控的,因此这是一个简洁明了、没有什么冗赘的设计。

    K&R 这本书用大量的例子和练习描述了完整的 C 语言及其标准库,而全书不过261页。

    C 语言的简单使它相对而言易于学习,也易于移植到不同的计算机上。

  • C语言是为实践目的设计的
    C 语言是设计用来实现 UNIX *** 作系统的。

    后来其他人发现能够用这门语言无障碍地编写他们想要的程序。

C语言是系统级编程的首选,同时它也非常适用于应用级程序的编写。

然而,它也并非适用于所有的程序员和所有的情况。

C语言的指针是造成程序员困惑和程序错误的一个常见原因。

同时,C语言还缺乏对非常有用的抽象的显式支持,例如类、对象和异常,像C++和Java这样针对应用级程序的新程序语言解决了这些问题。

1.2 选择C语言的理由
  1. 设计特性
    融合了计算机科学理论和实践的控制特性,支持结构化编程和模块化设计。

  2. 高效性
    紧凑,允许速度快, *** 作粒度精细。

  3. 可移植性
    UNIX、Windows、Mac都能找到 C 编译器。

  4. 强大而灵活

  5. 面向程序员
    程序员利用 C 可以访问硬件、 *** 控内存中的位。

  6. 缺点
    指针易出错。

1.3 C语言的应用范围

从微型机(PC)到大型机,都有C语言的身影。

1.4 计算机能做什么
  1. 把程序和数据装入主存储器
  2. 将源程序转换成可执行文件
  3. 从可执行文件的首地址开始逐条执行指令
1.5 高级计算机语言和编译器

什么是高级编程语言(High-level programming language)?

维基百科:高级编程语言

什么是编译器?

编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。

1.6 语言标准
  1. K&R C
    《C语言程序设计》是第1版公认的C标准。

  2. ANSI/ISO C
    定义了C语言和C标准库。

  3. C99
    支持国际化编程(提供多种方法处理国际字符集)、弥补缺陷(移植64位处理器)、适应科学和工程项目的关键数值计算。

  4. C11
    跟进新的技术。

1.7 使用C语言的7个步骤
  1. 定义程序的目标
  2. 设计程序
  3. 编写代码
  4. 编译
  5. 运行程序
  6. 测试和调试程序
  7. 维护和修改程序
1.8 编程机制

用C语言编程时,内容被储存在文本文件中,该文件被称为源代码文件(source code file)。

一个源代码文件 budget.c。

budget称为基本名,c称为拓展名。

1.8.1 目标代码文件、可执行文件、库

1.8.2 UNIX系统

1.8.3 GNU编译器集合和LLVM项目

用gcc命令便可以调用GCC C编译器。

gcc [options] [filenames],其中options是所需的参数,filenames是文件名。

eg:
gcc -std=c99 inform.c 调用C99标准
gcc -std=c1x inform.c 调用GCC接受C11之前的标准
gcc -std=c11 inform.c 调用C11标准

1.8.4 Linux系统

Linux系统是一个开源、流行、类似于UNIX的 *** 作系统,可在不同平台上运行。

1.8.5 PC的命令行编译器

C编译器不是标准Windows软件包的一部分,因此需要下载。

常见的C编译器有Cygwin和MinGW。

其中,MinGW在Windows的命令提示模式中运行。

使用gcc -v查看gcc version

链接:MinGW简介

1.8.6 集成开发环境(IDE)

推荐VS Code或DEV C++。

1.8.7 Windows/Linux

Windows能运行Linux程序,Linux也能运行Windows程序。

Windows不能访问Linux文件,但Linux能访问Windows文档。

1.8.8 Macintosh中的C

Macintosh就是Mac (苹果电脑),用Xcode编程。

1.9 本书的组织机构

略。

1.10 本书的约定

略。

1.11 本章小结
  • C是强大而简洁的编程语言。

  • C具有很高的可移植性。

  • C是编译型语言。

    C编译器和链接器可以把C语言源代码转换成可执行代码。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/662374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存