姓名:刘少阳
学号:19020100393
【嵌牛导读】C/C++语言本身与具体平台相关不大,但必须结合具体环境平台才能展现其作用。比如,MFC使用C/C++,QT也使用C/C++,Linux内核中使用C,单片机使用C,等等。环境不同,其侧重点不同。在学校里学习C/C++语法,考完试,却没有结合实际项目编程,就有人纠结学了C/C++不懂能做什么。只有真正在某一领域使用了C语言,它才是一个可以看得见、摸得着的东西,而不再是抽象的。
【嵌牛鼻子】C/C++语言
【嵌牛正文】
这里结合Linux系统,列举出一些要掌握、学习的知识点。
1、linux系统编程基本概念:Makefile、gcc、gdb。
2、文件IO操作。
3、进程控制、进程间通信、多线程操作
4、信号处理
5、网络编程
6、串口编程
另外也列举C/C++语言的学习点:
1、标准库
输入输出(fprintf、sscanf)、文件操作(fopen、fclose)、字符类操作(isalpha、islower)、字符串操作(strcpy、strcmp、memcpy)、信号处理(signal)、日期时间(mktime、ctime)
2、C++ STL
向量vector、队列queue、栈stack、列表list。
推荐网站:http://www.cplusplus.com/reference/
下面列出一些我认为较好的书籍。每种类型的书籍应用场合不同,按需求学习。——不仅嵌入式Linux领域,其它很多领域同时需要C,因而要提高C技能。
入门篇:
《Linux C 编程一站式学习》
《Linux C从入门到精通》
《Linux C编程从初学到精通 》
《Linux C编程实战》
《嵌入式linux应用开发完全手册》 (该书对嵌入式Linux开发整体都有讲述,一书以看窥全貌,入门适用)
linux网络编程篇:
《UNIX网络编程》
《UNIX环境高级编程》
C/C++提高篇:
《C陷阱与缺陷》
《C专家编程》
《C和指》
《C++沉思录》
《C/C++深层探索》
《Effective C++中文版》
《提高c++性能的编程技术》
《0 bug:C/C++商用工程之道》 (这本书网络有一定争论,笔者认为有部分的确有可取之处,请辩证看待)
学习路线:
环境:安装虚拟机linux,配置好samba,有windows下用notepad++编写代码,然后在命令行使用gcc编译并运行。像ubuntu安装必要开发工具sudo apt-get install build-essential 这类的知识点本文就不涉及了。
实践:首先了解linux下gcc编译基本概念,然后逐个知识点学习。以上每点均是一个知识块,需要手动写代码。建议在github上建立仓库,形成自己的代码库,方便日后使用。