对于Android应用开发者而言,想必在大学C语言都是必修课,现在面对C估计熟悉又陌生,但掌握基础的C语言开发对于Android开发还是会锦上添花的,不管是源码的阅读,驱动开发,jni开发,都绕不开C.趁着前段时间开始JNI开发的经历,大概梳理了下C语言开发基础的脑图点,和重要的知识点。
Let’s become a better Android/C Developer
本文适用于
- 任何想要学习C开发但不知道从哪里开始的人。
- 已经学习Android/C开发,但想学习Android底层相关开发的人
本文的目标是提供适当C/C++ RoadMap(路线图),方便知识Review,以使你成为更好的Android/C开发人员。
There is no better way to learn something than by doing.
Getting started with the MindMap
开局一张图,直接上脑图
First comes a strong core foundation
- 基础类型 ->常见类型的分类,有符号,无符号,占用字节数等。
- 数组 -> 一位数组,二维数组
- 结构体 ->实质就是一个变量仓储,留意初始化,成员变量访问等
- 函数 ->尽量精简,避免代码冗余
- 运算符 -> 加减乘除,三目操作,位运算等
- 枚举 -> 枚举定义,访问等
- 预编译/重定义 ->#define/typedef 前者是预编译,后者是运算时加载,相当于昵称别名
Learning is endless, take it to the next advance level
- 指针 -> 实质是内存地址索引,注意避免空指针,野指针
- 链表 -> 实质是指针的串行,注意指针的指向
- 线程管理 ->常用phread库,注意线程锁申请/释放,加锁/解锁 成对出现
- 内存管理 -> 实际开发中养成良好的开发习惯,注意指针变量声明初始化,macloc,memset等
Online Study Source
Beginner Resource
Other Resource
Recommended reading
The Page is End,Thanks for u reading