一些指针– Part 3

前两篇文章从声明指针到操作指针的更复杂符号的基础探讨了使用指针的基础。提出了关于数组和指针如何以相似方式工作以及可以用来操作它们的运算符类型的研究。现在是时候将所有这些概念的组合应用到指针数组中。

指针数组在概念上相对简单。它们只是一个数组,其中每个元素都存储一个指针而不是一个变量。它们提供了一种独特的方法来将寄存器,变量或函数组织为易于索引的格式。这允许使用简单的循环计数器来访问通常是冗长的单个代码操作集。

声明指针数组与声明任何数组相同,不同之处在于声明中使用了指针符号*。例如,指向uint16类型的指针数组可以声明如下

在这种情况下,可以将声明读为“ PArray是指向uint16的指针的数组”。这样,元素列表就是任意数量的指向变量,函数等的指针。使用指针数组可以更轻松地操纵任意数量的相似变量。例如,可以将上述声明中的每个变量设置为0,如下所示

仍然可以使用标准指针符号来设置每个变量。例如,可以通过如下取消对数组索引0处的指针的引用来将Var1设置为15

下一篇文章将仔细研究如何使用指针数组将外设的寄存器映射到配置表以对其进行设置。快速浏览函数指针将使我们对指针的基础知识有一个简短的了解。

函数指针常常会受到不好的说唱,因为与其他任何指针一样,如果使用不当,它们也有可能对系统造成严重破坏。根据定义,函数指针是在取消引用后将执行功能的指针。这使开发人员可以创建可以在各种情况下调用的动态函数列表。例如,功能指针表可用于以循环方式调度后台任务,处理通信协议命令或什至执行状态机的不同状态。有关如何定义函数的通用说明,可以在下面找到指针

例如,不声明任何参数且不返回任何内容的函数指针可以声明如下

也可以声明返回类型或采用参数的函数指针。例如,下面是一个函数指针声明,该声明以uint16作为参数,然后返回布尔值

也可以声明返回类型或采用参数的函数指针。例如,下面是一个函数指针声明,该声明以uint16作为参数,然后返回布尔值

状态机的当前状态可以存储在名为SmState的变量中,该变量的范围为1到3。在代码中执行状态机时,可以使用以下符号调用该状态的函数

要么

在开发嵌入式软件时,指针是非常有用且至关重要的工具。先前的文章仅探讨了可能的表面。以后的文章将检查其他应用程序的功能指针。但是,在下一篇文章中,将介绍如何使用刚刚回顾过的指针技术映射外设寄存器。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.