我当前正在使用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函数中,内部没有空隙,为什么里面也有另外2个括号(* handleBlinkDevice)(DW1000Device *)?
static void attachBlinkDevice(void (* handleBlinkDevice)(DW1000Device*)) { _handleBlinkDevice = handleBlinkDevice; };
答案 0 :(得分:3)
1)当在变量(例如DW1000Device *)的后面添加*时,是什么意思,似乎无法在线找到答案。通常只看到前面使用的*。
静态无效(* _handleBlinkDevice)(DW1000Device *);
DW1000Device 不是变量名,而是类型名
_handleBlinkDevice
是一个变量,其类型是不返回任何内容( void )并在参数中获取指向 DW1000Device
2)您如何在函数中理解void和void,还如何使用(function1)(function2)(请参见下面的复杂代码块)
静态无效(* _handleNewRange)(无效);
_handleNewRange
是一个变量,其类型是不返回任何内容( void )并且不获取参数的函数
答案 1 :(得分:0)
此符号表示一个函数指针,void
是其返回类型,(* pointer_name)
是指针名称,(Type*)
是参数列表,在这种情况下,参数是一个指向DW1000Device