嵌入式系统C语言编程的心得体会(指针篇)

转载 2013年12月02日 22:36:43
学习使用C语言不能不说到指针,指针的应用是C语言的特点也是精髓所在。没掌握指针的使用方法,也就说明你不会使用C语言。当然使用手法灵活多变,并不见得都要学会,只是说在写程序的时候要有这种思想体现在程序里。其实程序写的是否巧妙很大程度上就体现在指针应用上。
   嵌入式C语言编程里面的指针和标准的C概念上是一致的,但是由于使用处理器的构架不同,在实现表示实际对象上略有差别。这个集中体现在有些嵌入式处理器比如AVR单片机采用的是“哈佛”结构,数据和程序总线是分离的,因此,指向数据存储区的的指针和指向程序存储区的指针调用的指令是不同的,位数也是不同的。当然这些由编译器来完成,但是我们在使用时,心中要有数,因为在指针传递的过程中要注意传递的值是否与申明的位置一致。不然可能出现错误。
   什么是指针呢,不同的人也有不同的理解。我认为指针就是地址,形象一点就门牌号。一个门牌号对应一个位置空间。使用指针的时候就是到相应的空间去取值。指针的内容是我们需要的值,指针本身是指向这个内容的一个门牌号(即地址)。使用指针的时候并不需要知道指针是什么,但是要清楚指针指向的位置内是什么。因为门牌号只是个号,我关心的是内容不是这个号,只是在传递信息的时候使用这样一个号会让传递变得容易。指针是如何让传递变得容易的呢?
   先看看C语言的函数传递关系。函数传递分两种,一种是参数,一种是返回值。传递进函数的参数可以很多,但是传递函数写多了,会对函数的使用造成很多不便,至少编写程序的时候打字都是很麻烦。而且会占用更多的内存空间,这样因为相同的信息传递源占用空间,传递地也占用了空间。(这是对参数数量大的情况来说,当然数量少就不见得是占用空间多,相反使用指针还可能占用更多的空间)。C语言里面规定传递返回值只能有一个,但是在实际应用的时候经常需要传递多个返回值,这个时候就可以使用指针方式,可以传递指针参数,直接修改相应存储位置上的值,也可以将传放返回参数结构的指针回传。但是要特别提醒的是,使用指针回传参数的时候传递的指针不能是函数内部的局部变量,因为当函数退出的时候,局部变量的空间回被收回,里面的值可能回被其他函数修改。因此需要使用指针方式的后,应该在调用函数的上一级以上的函数申明变量,然后传递该变量的指针。
   指针和数组的关系很微妙,我认为数组和指针在使用上有很多相同的地方,只是在不同场合表达不一样。当然数组没有指针灵活,数组只是指针应用中的一个特例。
   指针的分类和基本用法见C语言的经典书籍,这就不罗嗦了。要讲的就是介绍些应用实例,启发思路。只是是启发了我的思路。
   指针的总结,没有之前两篇好写,想来想起,现在还没水平提炼写可以通用的心得,所以只好改用介绍实例的方式了。下篇在开始介绍。

相关文章推荐

浅谈C之精华---指针

今天是2016年的第一天,祝大家元旦快乐!哎,今天有点倒霉,代码写到一半,突然机子就没电了,幸好有保存,否则今天没有这篇日志的出现。          好了,今天以我个人的角度来深度剖析一下C语言中...

Allegro brd文件更新封装及焊盘方法

对于allegro软件,很多时候需要在其brd文件中更新元件的封装或是焊盘,本文主要介绍其更新元件封装及焊盘方法及操作步骤。   一、allegro 更新封装方法及操作步骤   ...

Allegro多个元器件同时旋转操作方法

Allegro多个元器件同时旋转操作方法 下面的解决方案适用于,多个零件同时围绕一个点旋转,而不是围绕各自的一点旋转. 1.Edit->Move,在Options中Rotation的Point...
  • varding
  • varding
  • 2013年11月06日 08:09
  • 1280

嵌入式系统C语言编程小心使用局部变量

问题: 今天同事在写一个STM32上的程序时,总是遇到内存溢出的错误。结果发现是因为使用了一个局部变量导致的。 因为C语言的局部变量被编译器自动放到栈区的空间(全局变量需要手动申请并释放空间)。嵌入式...

arm嵌入式系统c语言编程

  • 2013年12月23日 15:45
  • 147KB
  • 下载

嵌入式系统高级C语言编程

  • 2013年06月25日 23:41
  • 218B
  • 下载

C语言嵌入式系统编程修炼之软件架构篇 2

硬件驱动模块   一个硬件驱动模块通常应包括如下函数:   (1)中断服务程序ISR   (2)硬件初始化   a.修改寄存器,设置硬件参数(如UART应设置其波特率,AD/D...

ARM嵌入式系统C语言编程1

  • 2014年03月19日 05:11
  • 301KB
  • 下载

嵌入式系统高级 C语言编程

  • 2009年04月30日 18:35
  • 68KB
  • 下载

C语言嵌入式系统编程修炼之软件架构篇

转载来自下面的网页:http://dev.yesky.com/131/2017631_2.shtml
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式系统C语言编程的心得体会(指针篇)
举报原因:
原因补充:

(最多只允许输入30个字)