第一章 初始C语言

       第一章主要介绍了有关C语言的历史和特性、编写程序的步骤、编译器和链接器的一些知识、C标准。


目录

1.1 C语言的起源

1.2 选择C语言的理由

优点

缺点

1.3 C语言的应用范围

1.4 计算机能做什么

相关知识:

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

1.6 语言标准

1.7 使用C语言的7个步骤

1. 定义程序的目标

2. 设计程序

3. 编写代码

4. 编译

5. 运行程序

6. 测试和调试程序

7. 维护和修改代码

1.8 编程机制

1. 目标代码文件、可执行文件和库

2. UNIX系统


1.1 C语言的起源

  • 时间: 1972年
  • 地点:贝尔实验室
  • 人物:丹尼斯•里奇和肯•汤普逊
  • 事件:在开发UNIX操作系统时设计的C语言,C语言是在B语言的基础上进行设计的成果
  • 设计初衷:作为程序员使用的一种编程工具,成为有用的语言
  • 其他语言例子:Pascal是为了更好的学习编程原理提供扎实的基础;BASIC是为了开发出类似英文的语言,让不熟悉计算机的学生轻松学习编程

1.2 选择C语言的理由

优点

1. 设计特性

C语言的设计理念让用户可以完成自顶向下的规划、结构化编程和模块化设计,更易懂、可靠。

2. 高效性

C语言程序相对更加紧凑,运行速度快。具有汇编语言具有的微调控制能力,可根据具体情况微调程序以获得最大运行速度或最有效的使用内存。

3.可移植性

在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行,如需修改,也只需简单更改主程序头文件中的少许项即可。

(注意:程序中针对特殊硬件设备(如,显示监视器)或操作系统特殊功能(如,Windows 8或OS X)编写的部分,通常是不可移植的。

4. 强大而灵活

C语言应用广泛(UNIX操作系统、其他语言的编译器、物理学和工程学问题、电影的动画特效)

5. 面向程序员

(1)程序员可以利用C访问硬件、操控内存中的位

(2)丰富的运算符让程序员可以简洁表达自己的意图

(3)虽没Pasal严谨,但比C++限制多;处理简洁,但可能会犯莫名其妙的错误

(4)拥有大型库提供有用的C函数,用于处理程序员经常需要解决的问题

缺点

1. 指针的存在让编程的错误难以察觉

2. 大量的运算符导致晦涩代码的产生 

1.3 C语言的应用范围

1.4 计算机能做什么

相关知识:

1. 计算机中存储的都是数字,计算机以数字形式存储数字和字符

2. 计算机程序最终必须以数字指令(机器语言)来表示

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

编译器:将高级语言程序翻译成机器语言指令集的程序。

注:不同CPU制造商使用的指令系统和编码格式不同,但找到与特定类型CPU匹配的编译器就可以将高级语言程序转换为不同类型CPU使用的机器语言程序。故,高级语言是以更抽象的方法描述行为,不受限于特定CPU或指令集。

1.6 语言标准

1989年,ANSI/ISO C标准发布,别称C89;

保持C的精神:

信任程序员;
不要妨碍程序员做需要做的事;
保持语言精练简单;
只提供一种方法执行一项操作;
让程序运行更快,即使不能保证其可移植性。

1994年,ANSI/ISO联合委员会开始修订C标准,C99问世。

不是在C语言中添加新特性,而是为了达到新的目标

     (1)支持国际化编程

     (2)调整现有实践致力于解决明显缺陷

     (3)为适应科学和工程项目中的关键数值计算,提高C的适应性,让C比FORTRAN更有竞争力

2011年,发布C11标准,不那么强调“信任程序员”目标,修订是为了跟进新的技术。

1.7 使用C语言的7个步骤

1. 定义程序的目标
2. 设计程序

使用一般术语而不是具体代码来描述问题

3. 编写代码

例如:

#include<stdio.h>

int main(){
    int dogs;
    printf("How many dogs do you have?\n");
    scanf("%d",&dogs);
    printf("So you have %d dog(s)!\n",dogs);
    return 0;
}
4. 编译

编译器将源代码转换成可执行代码。

若编译器发现错误,就不生成可执行文件并报错。

5. 运行程序
6. 测试和调试程序
7. 维护和修改代码

1.8 编程机制

1. 目标代码文件、可执行文件和库

源代码——.c结尾,例如buget.c,对于文件名,不同OS要求不同

编译器——将源代码转换成可执行代码。

链接器——将目标代码、系统的标准启动代码和库代码合并成可执行文件

目标文件和可执行文件都由机器语言指令组成。

目标文件只包含编译器翻译你的代码的机器语言;可执行文件还包含了程序中使用的库函数和启动代码的机器代码。

2. UNIX系统

在编辑时注意,UNIX系统区分大小写,buget.c和BUGET.c和Buget.c是三个不同但都有效的C源文件名。但是.C是无效的。

编译命令:假设对于inform.c

cc inform.c

利用ls命令列出文件,会发现a.out文件,是包含已翻译程序的可执行文件,运行该文件:
 

a.out

一旦链接器生成了完整的可执行程序,会删除目标代码文件inform.o。若原始程序有多个源代码文件,则保留目标代码文件。

有关GNU编译器集合和LLVM项目:

gcc clang 命令都可以根据不同的版本选择运行时选项来调用不同 C
准。
gcc -std=c99 inform.c
gcc -std=c1x inform.c
gcc -std=c11 inform.c
Linux系统
安装Linux时,需安装GCC。
PC命令行编译器
C编译器生成的中间目标代码文件扩展名是.obj, 完成编译后不会删除中间文件。
集成开发环境
不同IDE使用细节不同
Windows/Linux
在Windows系统中运行Linux,在Linux系统中运行Windows程序。
不能通过Windows系统访问Linux文件,但可以通过Linux系统访问Windows文档。
Macintosh中的C
  • 45
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值