关于嵌入式C&&C++的一些编程问题(三)

上篇文章看了一下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关键字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值