В чем разница между расположением *: * переменной и переменной * - PullRequest
0 голосов
/ 08 февраля 2019

В настоящее время я использую Decawave DWM1000 и обнаружил библиотеку примеров в сети (https://github.com/thotro/arduino-dw1000).. Мы намереваемся манипулировать библиотекой и функциями кода для наших собственных целей. Однако библиотека может быть неполной и используется несколько синтаксисов.что я не понимаю.

1) Что это означает, когда * добавляется в конце переменной (например, DW1000Device *), кажется, не может найти ответы в Интернете.Обычно только см. * Используется спереди.

2) Как вы понимаете пустоту в пустоте в функции Кроме того, как вы используете (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; };

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

В этой записи обозначается указатель на функцию, void - это тип возвращаемого значения (* pointer_name) - это имя указателя, а (Type*) - список параметров, и в данном конкретном случае параметр является указателем на DW1000Device

0 голосов
/ 08 февраля 2019

1) Что означает, когда * добавляется в конце переменной (например, DW1000Device *), кажется, не может найти ответы в Интернете.Обычно видят только * используемый спереди.

static void (* _handleBlinkDevice) (DW1000Device *);

DW1000Device не имя переменной, а типname

_handleBlinkDevice - это переменная, тип которой является функцией, которая ничего не возвращает ( void ) и получает в параметре указатель на DW1000Device

2) Как вы понимаете void с помощью void в функции Кроме того, как вы используете (function1) (function2) (см. Сложный фрагмент кода ниже)

static void (* _handleNewRange) (void);

_handleNewRange - это переменная, тип которой является функцией, которая ничего не возвращает ( void ) и не получает аргументов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...