嵌入式学习之C语言基础阶段00

理解C语言

C是强大而简洁的编程语言,编程语言是指程序员于计算机沟通的语言。它之所以流行,在于自身提供大量的实用编程工具,能很好的控制硬件。与大多数其他程序相比,C程序更容易从一个系统移植到另一个系统。

C是编译型语言。C编译器和链接器是把C语言源代码转换成可执行代码的程序。
编程语言的发展

机器语言(低级语言)–》汇编语言–》高级语言(如C)

最早出现的语言是机器语言,机器语言:计算机可直接识别的语言(0和1组成的机器指令)

机器语言:

1、灵活、高效

2、阅读困难、编写困难、推广困难、容易出错

3、不同的CPU,机器语言有所差异,依赖硬件、面向机器、移植性很差

依赖硬件、面向机器的编程语言,称为低级语言

脱离硬件、移植性好的语言称为高级语言

高级语言的种类非常之多如

1、面向过程语言:BASIC Pascal C

2、面向对象语言:C++ Java PHP C#

C语言的起源

C语言教程
1970年,美国的贝尔实验室,肯·汤普逊(KenThompson)开发出了一种B语言(BCPL) 简单,接近硬件的语言,研发了第一种UNIX操作系统。丹尼斯里奇(Dennis Ritch)在B语言基础上改造开发出了C语言,克服了B语言过于简单,且数据无类型等问题。使用C语言开发出了UNIX操作系统。

越来越多的人使用C语言。问题:没有统一标准,规范。

于是1983年,美国标准协会开始整这个C语言标准,6年时间,1989 年第一个完善的C语言标准—ANSIC标准C89标准。1990 年,国际标准协会,也通过了一个标准 ISO C 标准,是同一个标准—C90标准

标准不会更新,c99标准

软件支持C89标准

C语言的特点

嵌入式方面:软硬件可剪裁

1、可以对位、地址操作、访问硬件 (Java不具有的)、指针

2、结构化编程,结构化语言,组织比较紧凑,易于表达:32个关键字 9种控制语句

3、运算符丰富 ±*/ & | ^ = ~ 34个运算符

4、数据类型丰富

​ 基本数据类型:

​ 整型: 0 1 2 3 4 5 89(由数字组成,不带小数点)

​ 实型: 13.14 0.78(由数字组成带小数点)

构造类型:结构体、共用体等

5、程序效率高 ,于汇编关系比较紧密 ,C语言中可以嵌套汇编语言

6、程序设计*度大 , *(语法限制不严格)

7、移植性好 ,一个C程序可以在很多平台上运行

C语言的编程机制

C是可移植性语言,因此C语言可以在很多平台上运行。

C语言的编译过程:预处理 编译 汇编 链接(将C源文件 转化为 计算机可以执行的文件)

详细解析:C编程的基本策略是用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码)。典型的C实现通过编译和链接两个步骤来完成这一过程。编译器把源代码转换为中间代码,链接器把中间代码和其他代码合并,生成可执行文件。
嵌入式学习之C语言基础阶段00

使用C语言的七个步骤

1、明确程序目标

​ 清楚的知道我们编写的程序是用来完成什么功能的?

如:向控制台输出”hello world“

2、设计程序

​ 根据情况、考虑数据、结构、用户等,功能实现的思路

3、编写代码(符合C语言编程规则–语法)

4、编译(检测是否有语法问题)

5、运行程序 (检测程序是否达到预期效果)

6、测试和调试程序

7、维护和修改程序

.cpp 是C++源文件后缀 C plus plus

.c C源文件

C++ 是C语言的超集 C++是在C语言上添加了很多内容

C++兼容C C不兼容C++

问答题:

1、对于编程而言,可移植性意味着什么?

​ 完美的可移植程序是,其源代码无需修改就能在不同的计算机系统中成功编译的程序。

2、解释源代码文件、目标代码文件和可执行文件有什么区别?

​ 源代码文件包含程序员使用的任何编程语言编写的代码。

​ 目标代码文件包含机器语言代码,它不必是完整的程序代码。

​ 可执行文件包含组成可执行程序的完整机器语言代码。

3、编程的七个主要步骤是什么?

  1. 定义程序目标

  2. 设计程序

  3. 编写程序

  4. 编译程序

  5. 运行程序

  6. 测试和调试程序

  7. 维护和修改程序

4、编译器的任务是什么?

​ 编译器把源代码(如,用C语言编写的代码)翻译成等价的机器语言代码(也叫做目标代码)

5、链接器的任务是什么?

​ 链接器把编译器翻译好的源代码以及库代码和启动代码组合起来,生成一个可执行程序。