现在嵌入式行业发展非常快,很多人想从事嵌入式开发工作,如嵌入式软件工程师,MCU单片机开发工程师,嵌入式硬件工程师,Linux系统开发工程师,驱动工程师,这些职业薪也确实很高,但是这都离不开我们的C语言,然而很多同学认为C语言知识非常复杂难学,生硬的背下来语法但是给了需求依然不会写程序,让初学者很是头痛。其实不然,笔者从事嵌入式行业多年,接下来的给大家分享一下C语言的知识框架和如何学习C语言,希望对大家有所帮助。
其实一个程序由数据和算法组成,那我们只需要学习的就是数据和算法,那我们就以此为出发点看一下我们要学习什么知识。
知识框架:
出发点:程序=数据+算法,算法=运算符+控制语句。
数据:那我们来看一下数据的知识点,数据其实就包括数据类型和数据结构,数据类型只有三大数据类型,分别是基本数据类型,构造数据类型,指针类型,具体如图所示
补充:指针是大家最头疼的知识了,很多人学了指针就乱了,不知道能干什么,通过以上形式学习,就会很清晰额。(具体指针学习后期给大家分享)
接下来我们谈一下算法:算法=运算符+控制语句,再复杂的算法其实同事运算符和控制语句完成的,比如各种排序算法,滤波算法等,他们只是功能相对制定。
运算符:C语言中的运算符非常灵活,其中的位运算符是其他语言没有的,也是嵌入式开发底层芯片开发必要的运算,那我们就给他分一下类,如图:
控制语句:九条控制语句大家会觉得很混乱那我们来分一下类,如图:
补充:分开学习后我们要会各个控制语句的嵌套使用。大家想想学了以上这些理论上我们就可以编写任何程序了,但是我们要让程序更完美,包装的更模块化,那还有C语言以下的知识点。
函数:函数的目的是为了将我们的程序模块化,让我们的程序更简洁,方便移植和后期优化,那函数我们需要学习什么呢?如图:
宏定义和条件编译:宏定义是为了让我们的程序更加简便,条件编译可以按不同的条件去编译不同的程序部分,因此产生不同的目标代码文件,这对于程序的移植和调试是很有用的。让我们告别程序臃肿,如图:
动态分配--链表:让我们的程序进入更高级结构,动态申请空间,大家学习可以对比数组就很明显了。如图:
文件操作:文件操作在系统开发中很有用,其实很简单,无非就是如何使用系统给我们的函数,创建文件,打开文件,追加内容,关闭文件等函数的调用
最后我们用两张图片看一下C语言的知识点:
好了,这就是C语言的知识点框架,大家可以参考去学习。有很多同学会有一些学习误区,比如硬背32个关键字等,其实我们这样学习了后,常用的关键字我们就都记住了而且最重要的是会使用了。
但是大家还会有问题,我回了这些知识点但是给我需求,我还是不知道怎么写程序,无从下手的感觉或者不熟练,其实是因为大家没有编程思维,我认为这个是更重要的,编程思维可以让我们怎么分析需求,分析程序结构,整理编程思路,最终完成程序,本篇文章太长了,下次我给大家分享如何训练我们的编程思维,让我们写程序得心应手,如果笔者的经验对大家有用,麻烦大家点赞