【发布时间】:2021-02-06 18:58:29
【问题描述】:
我需要帮助理解以下代码是什么。
1 const char* (*srslte_rf_devname)(void* h);
2 int (*srslte_rf_start_rx_stream)(void* h, bool now);
3 int (*srslte_rf_stop_rx_stream)(void* h);
4 void (*srslte_rf_flush_buffer)(void* h);
我认为第 1 行发生的事情是 const char* 是一个指针,它是一个常量字符数组,它指向一个名为 srslte_rf_devname 的指针函数,我不知道 (void* h) 是什么或什么它正在做。
我认为第 2 行声明了一个名为 srslte_rf_start_rx_stream 且类型为 int 的指针函数。我不知道 (void* h, bool now);是或正在做什么。
我认为第 4 行声明了一个没有返回值“void”的指针函数,不确定该函数与其他行相比是什么“类型”。
请帮助我理解 * 的含义以及 (*"some_stuff") 的含义,或将我指向解释它的资源。
【问题讨论】:
-
阅读Modern C 并查看this C reference 然后查看n1570 草案C 标准。你有指向函数的指针。
-
所有四行都声明了指向函数的指针。这些函数具有不同的返回类型和不同的参数。它们共同的参数(
void* h)是一个句柄(即指向不透明类型的指针)。您通常从初始化函数中获取句柄。
标签: c