上篇文章看了一下C&&C++语言标准的发展,本文接着来分析一下嵌入式编程中C++语言的应用;其实基于ARM处理器的话,对于C/C++支持都很到位(使用gcc/g++编译工具);相对于面向过程的C语言编程,面向对象的C++实现更抽象;本系列的文章都是围绕Ti达芬奇处理器展开的:
一、C++概述
1.嵌入式开发中为什么选择C++语言?
(1)面向过程编程的特点
C语言特点:C语言是在实践的过程中逐步完善的
·没有深思熟虑的设计过程
·使用时存在很多“灰色地带”
……
·残留量过多低级语言的特征
·直接利用指针进行内存操作
……
面向过程的编程特点:
面向过程程序设计:数据结构+算法
·主要解决科学计算问题,用户需求简单固定
·特点:分析解决问题所需要的步骤
利用函数实现各个步骤
依次调用函数解决问题
·问题:软件可重用性差
软件可维护性差
构建的软件无法满足用户需求
(2)面向对象编程的特点
面向对象的编程特点:
面向对象程序设计:由现实世界建立软件模型
·将现实世界中的事物直接映射到程序中,可直接满足用户需求
·特点:直接分析用户需求中涉及的各个实体
在代码中描述现实世界中的实体
在代码中关联各个实体协同工作解决问题
·优势:构建的软件能够适应用户需求的不断变化
直接利用面向过程方法的优势而避开其劣势
C++语言特点:高效的面向对象语言,并且能够兼容已经存在的代码
二、从C到C++的升级
1.声明定义
C++:C++中更强调语言的实用性,所有变量都可以在需要使用时再定义
如:for(int i = 0; i < 2; i++)
C语言:变量必须在作用域开始时定义
2.register关键字的升级
经常被访问的变量我们就可以用register修饰为寄存器变量,请求编译器尽可能的将变量存在CPU的内部寄存器中,节省了CPU从内存中抓取数据的时间,从而提高了运行效率。
C语言:register只能修饰局部变量,不能修饰全局变量和函数;
register修饰的变量不能通过取地址来获取寄存器变量;
register修饰的变量一定是CPU能接受的数据类型。
C++:在C++中依然支持register关键字