|
今天先开始第一系列--零基础学习C/C++软件开发。
在开始之前先说一说我的讲解计划,大概分为如下几个阶段:
1.介绍学习C/C++软件开发必要掌握的基本概念
2.讲解C/C++语法以及在实践应用中对应的注意事项
3.讲解C/C++源代码编译和链接的过程
4.讲解常用的设计模式和数据结构
---------------------------------
每篇的内容长度可能都会有所不一样,根据我自己的空闲时间随时调整,时间充裕我就会多写一些,时间没那么充裕就会相对少写一点。
每次在文章最后,我都会发起一个大家是否读懂或者理解的投票,根据投票的内容,我会及时调整后续讲解的方法,麻烦大家读完后,都帮忙投下票。
如果有任何问题或者建议也都可以私信给我,我会在下一篇文章中针对共同性或者代表性的问题进行答疑。
今天先介绍一下几个比较重要的基本概念,理解了这些基本概念对于后续的学习会有很大的帮助,正所谓站得高,望得远。
一、计算机
计算机是一个非常广泛的概念,大到如“天河一号”,“神威太湖之光”等超级计算机,小到如冰箱、洗衣机等家电上使用的控制芯片都可以被称为计算机。
对于系统/平台软件开发者来说,要特别关注一下计算机的三个部件,它们分别是中央处理器(CPU)、内存和I/O(输入/输出设备),这三个部件几乎就是计算机的核心了;对于应用软件开发者来说,几乎是是不需要关心硬件细节的,只需要关心一下系统/平台能够提供哪些能力就可以了,因为系统/平台为它们提供了一个抽象的计算机。

简单的画了一个草图
二、编程语言
编程语言主要可以概括为两种:
1.编译型语言,编译型语言是指程序在执行之前需要一个专门的编译过程,把程序源文件编译为机器语言的文件,运行时不需要重新编译,其优点是执行效率高,其缺点是跨平台性差,移植之后需要重新编译。
比如C/C++
2.解释型语言,解释型语言是指源代码不需要预先进行编译,在运行时,要先进行解释再运行,其缺点是执行效率低,优点是跨平台性好。
比如Python,java
※java有点介于编译型语言和解释型语言之间,需要先编译生成.class文件后再由JVM(java虚拟机)解释执行,等讲完C/C++之后有时间可以再讲讲java。
三、创建C/C++程序的四个基本步骤或过程
1.编辑,使用编辑器创建和修改程序源代码。
2.编译,使用编译器将源代码转换成机器码。
3.链接,使用链接器将源代码中由编译器产生的各个模块组合起来,将它们组合成一个可执行的文件。
4.执行,执行就是运行程序。
四、硬件与软件方案设计之间的关系
软件是运行在硬件上面的,硬件是肢体,软件是控制肢体的思想和灵魂,没有了思想和灵魂,只有肢体是不能正常工作的,当然没有了肢体的思想和灵魂就是空谈了。几乎所有的电子设备及其零部件都是由软件和硬件协同工作的。
在一个产品立项之初,就需要根据产品要实现的功能(需求)设计硬件和软件的实现方案,软件和硬件是相辅相成的。
软件的设计方案是要依托于硬件设计方案的。
举个例子,如果一个手机没有摄像头,无论软件怎么设计都是无法实现拍照功能的。
如果需要实现一个AD(模拟信号转数字信号)采集功能,芯片自带的AD功能精度不够,就会有如下两种方案:
方案1:外接高精度AD采集芯片。
方案2:使用芯片自带AD采集功能,通过软件算法优化AD精度。
方案2对于方案1来讲,就要多实现AD精度算法优化相关的内容。
今天就先说这么多吧。
最后欢迎大家关注我的微信公众号:金鹏说Pro |
|