文章目录
C语言知识体系
- C语言概述(历史、特点、标准)
- 数据类型(基本数据类型、输入输出)
- 基本语句及表达式、运算符(条件语句、循环语句、多路分支、goto语句)
- 数组(一维数组、二维数组、多维数组)
- 指针(一维指针、多维指针、数组指针、指针数组、函数指针、函数指针数组)
- 内存管理(内存是稀缺资源,内存泄露)
- 函数(函数声明、定义、调用、库函数的使用(字符串处理函数、时间函数、随机数函数))
- 编码规范(华为编码规范)
- 预处理(宏定义、宏函数、条件编译)
- 关键字(static、extern、register、const、typedf、volatile、inline)
- 位操作(位运算)
- 复合数据类型(struct、union、enum)
- 文件操作(打开、关闭、读写、属性设置)
进度安排
day1:1,2
day2:3,4,5
day3:5,6,8
day4:6,7,8
day5:10,9
day6:11,12
学习目标:
- 代码量:1w+;
- 书籍阅读:5+;
- 笔记:教材
学习要求:
- 代码量:力扣(每天1道,30分钟)
- 书籍:C语言三剑客、C program、C语言接口与实现、高质量编程……
一、C语言概述
1.1 嵌入式开发中为什么选择C语言
嵌入式开发中操作系统是核心、需要一直,并在上层和底层做开发,而操作系统最核心的是:内核,所有的内核都是由C语言开发,
1.2 为什么内核开发选择C语言
- C语言能直接访问和控制硬件(C(硬件复杂操作) VS 汇编(硬件初始化))
- C语言运行效率快(运行时语言)解释性语言 VS 运行时语言(C VS java \ C VS C++)
- 移植性
1.3 C语言的缺点
面向结构(代码的复用性差、代码的维护性差、代码的扩展性差)
1.4 C语言实现面向对象编程
?????????
1.5 C语言的开发方向
操作系统(上层(库)、底层(BSP、驱动)、实现(内核))、硬件、中间件(sdk)
1.6 C语言发展
一点问题都没有
C语言基础知识
- 机器码(运行效率、访问硬件能力)
- C语言之父:丹尼斯-里奇
- C语言语法标准:K&RC 、c89、c99、c11
- C语言语言版本:GNU C + ASCI C
- gcc:100%c89 + 部分c99
- 什么语言可能以后会替代C语言?
Go 和 Rust(替代不了)