C Primer Plus 第一章 初识C语言 阅读笔记

第一章 初识C语言

  • 1.1 C语言的起源
  • 1.2 选择C语言的理由
  • 1.3 C语言的应用范围
  • 1.4 计算机能做什么
  • 1.5 高级计算机语言和编译器
  • 1.6 语言标准
  • 1.7 使用C语言的7个步骤
  • 1.8 编程机制
  • 总结

1.1 C语言的起源

  • 1972年,贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UNIX操作系统时设计了C语言。
  • C语言设计初衷是将其作为程序员使用的一种编程工具,其的主要目标是成为有用的语言。
  • Pascal的主要目标是为了更好地学习编程原理提供扎实的基础
  • Basic的主要目标是开发出类似英文的语言,让不熟悉计算机的学生轻松学习编

1.2 选择C语言的理由

  • 设计特性
      C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。用C编写的程序更易懂、更可靠。
  • 高效性
      C语言具有通常是汇编语言才具有的微调控制能力,可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。
      注: 汇编语言是为特殊的中央处理单元设计的一系列内部指令,使用助记符来表示;不同的CPU系列使用不同的汇编语言
  • 可移植性
      C是可移植的语言。即C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需要简单更换主程序头文件中的少许项即可。
  • 强大而灵活
      例如:UNIX操作系统大部分是C语言写的;其他语言(如,FORTRAN、Python、Basic)的许多编译器和解释器都是用C语言编写的。
  • 面向程序员
      C是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。
      大多数C实现都有一个大型的库,包含众多有用的C函数。这些函数用于处理程序员经常需要解决的问题。
  • 优点&缺点
      优点:1.强大的控制结构  2.快速  3.代码紧凑–程序更小  4.可移植到其他计算机
      缺点:1.语言使用指针,而涉及指针的编程错误往往难以察觉  2.C语言结合了大量的运算符,可以编写出让人及其费解的代码

1.3 C语言的应用范围

  • 20世纪80年代,C语言成为小型计算机(UNIX系统)使用的主流语言,从那以后C语言的应用范围扩展到微型机(个人计算机)和大型机。许多软件公司都用c语言来开发文字处理程序、电子表格,编译器和其他产品
  • 20世纪90年代,许多软件公司开始改用C++来开发大型的编程项目。C++在C语言的基础上嫁接了面向对象编程工具。C++几乎是C的超集,这意味着任何c程序差不多就是一个C++程序。
  • 现在,C语言已经成为嵌入式系统编程的流行语言,越来越多的汽车、照相机、DVD播放机和其他现代化设备的微处理器都用C语言进行编程;C在Linux开发中扮演着极其重要的角色。
    C Primer Plus 第一章 初识C语言 阅读笔记_第1张图片

1.4 计算机能做什么

  • 计算机由多种部件组成
    -1.中央处理单元(CPU):承担绝大部分的运算工作
    -2.随机存取内存(RAM):是存储程序和文件的工作区
    -3.永久内存存储设备:(过去一般指机械硬盘,现在还包括固态硬盘)即使在关闭计算机后,也不会丢失之前存储的程序和文件。
    -4.外围设备:(如,鼠标、键盘、触摸屏、监视器)提供人与计算机之间的交互。
  • CPU工作原理
      CPU负责处理程序。它从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令。
  • 两个有趣的知识
    -1.存储在计算机中的所有内容都是数字。
    -2.计算机程序最终必须以数字指令(即,机器语言)来表示
  • 计算机工作原理
      如果希望计算机做某些事,就必须为其提供特殊的指令列表(程序),确切地告诉计算机要做的事以及如何做。你必须用计算机能直接明白的语言(机器语言)创建程序。

1.5 高级计算机语言和编译器

  高级编程语言简化了编程工作,不必用数字码表示指令。使用的指令更贴近你如何想这个问题,可以在更抽象的层面表达你的想法。
  在计算机看来,高级指令就是一堆无法理解的无用数据,编译器在这里派上用场。编译器是把高级语言程序翻译成计算机能理解的机器语言指令集的程序。不同CPU制造商使用的指令系统和编码格式不同。使用合适的编译器或编译器集,便可以把一种高级语言程序转换成供各种不同类型CPU使用的机器语言程序。
  简而言之,高级语言以更抽象的方式描述行为,不受限于特定CPU或指令集。

1.6 语言标准

  • C89/C90(ANSI/ISO C)
  • C90:主要修订目标–国际化、弥补缺陷、提高计算机实用性。
  • C11:新标准添加了可选项支持当前使用多处理器的计算机。

1.7 使用C语言的7个步骤

  • 第1步,定义程序的目标
      首先确定想做什么,思考程序需要哪些信息,要进行哪些计算和控制,以及程序需要报告什么信息。
  • 第2步,设计程序
      考虑如何用程序来完成它。还要决定在程序中如何表示数据,以及用什么方法处理数据。选择一个合适的方式表示信息可以更容易地设计程序和处理数据。
  • 第3步,编写代码
      设计好程序后,编写代码来实现它。
  • 第4步,编译
      编译源代码。编译器:把源代码转换成可执行代码的程序。可执行代码:机器语言表示的代码。C编译器还将源代码与C库的代码合并成最终的程序。编译器还会检查C语言是否有效。如果发现错误,就不会生成可执行文件并报错。
  • 第5步,运行程序
      可执行文件是可运行的程序。
  • 第6步,测试和调试程序
      检查程序是否按照你所设计的思路运行。调试就是查找并修复程序错误的过程。
  • 第7步,维护和修改程序

1.8 编程机制

  源代码文件的文件名由基本名(.前面的部分)和扩展名(.后面的部分)组成。大部分C系统,都要求文件名以.c结尾。
  C编程的基本策略是,用程序把源代码文件转换为可执行文件。C实现通过编译和链接两个步骤来完成。编译器把源代码转换成中间代码,链接器把中间代码转和其他代码合并,生成可执行文件。
  中间代码最普遍的一种形式,即把原代码转换为机器语言代码,并把结果放在目标代码文件中。虽然目标文件中包含机器语言代码,但是并不能直接运行该文件,因为目标文件中存储的是编译器翻译的源代码,这还不是一个完整的程序。
  目标代码文件缺失启动代码。启动代码充当着程序和操作系统之间的接口。目标代码还缺少库函数。链接器的作用:把目标代码、系统的标准启动代码和库函数合并成可执行文件。
  小结:目标文件和可执行文件都由机器语言指令组成。然而,目标文件中只包含编译器为你编写的代码翻译的机器语言代码,可执行文件中还包含你编写的程序中使用的库函数和启动代码的机器代码。有些系统中必须分别运行编译程序和连接程序,而在另一些系统中编译器会自动启动连接器。
C Primer Plus 第一章 初识C语言 阅读笔记_第2张图片

总结

  • C是编译型语言
  • C程序更容易从一个系统移植到另一个系统。
  • C是编译型语言,C编译器和连接器是把C语言源代码转换成可执行代码的程序。

你可能感兴趣的:(C Primer Plus 第一章 初识C语言 阅读笔记)