首页 > 解决方案 > *的位置有什么区别:*变量与变量*

问题描述

我目前正在使用 Decawave DWM1000,并在网上找到了示例库 ( https://github.com/thotro/arduino-dw1000 )。我们打算为自己的目的操作库和代码函数。但是,该库可能不完整,并且使用了几种我不理解的语法。

1) 在变量后面添加 * 是什么意思(例如 DW1000Device*)似乎无法在线找到答案。通常只看到*用在前面。

2) 你如何理解函数中的 void 和 void 另外,你如何使用 (function1)(function2) (请参阅下面的复杂代码块)

QNS1 //在前面和后面使用 * 是什么意思,例如。(* _handleBlinkDevice)(DW1000Device*)

static void (* _handleNewRange)(void);
static void (* _handleBlinkDevice)(DW1000Device*);
static void (* _handleNewDevice)(DW1000Device*);
static void (* _handleInactiveDevice)(DW1000Device*);

QNS2 //函数attachBlinkDevice里面有void,为什么里面还有另外2个括号(*handleBlinkDevice)(DW1000Device*)?

static void attachBlinkDevice(void (* handleBlinkDevice)(DW1000Device*)) { _handleBlinkDevice = handleBlinkDevice; };

标签: c++pointersarduino

解决方案


1) 在变量后面添加 * 是什么意思(例如 DW1000Device*)似乎无法在线找到答案。通常只看到*用在前面。

静态无效(* _handleBlinkDevice)(DW1000Device*);

DW1000Device不是变量名而是类型名

_handleBlinkDevice是一个变量,其类型是一个不返回任何内容 ( void ) 的函数,并在参数中获取一个指向DW1000Device的指针

2) 你如何理解函数中的 void 和 void 另外,你如何使用 (function1)(function2) (请参阅下面的复杂代码块)

静态无效(* _handleNewRange)(无效);

_handleNewRange是一个变量,其类型是一个不返回任何内容 ( void ) 并且没有参数的函数


推荐阅读