簡體   English   中英

需要幫助理解此 C 代碼的作用

[英]Need help understanding what this C code does

我需要幫助理解以下代碼是什么。

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") 是什么意思或指向我解釋它的資源。

1. const char* (*srslte_rf_devname)(void *h);

請注意,在C語法, const char聲明,說明符的一部分,並且*說明符的一部分。 因此,要從語法上理解這一點,我們應該將*與聲明符的其余部分組合在一起,而不是與說明符組合在一起: const char *(*srslte_rf_devname)(void *h)

那么,這意味着:

  • *(*srslte_rf_devname)(void *h)是一個const char
  • 因此(*srslte_rf_devname)(void *h)是指向const char的指針。
  • 因此(*srslte_rf_devname)是一個函數,它采用void *並返回一個指向const char的指針。
  • 因此srslte_rf_devname是一個指向采用void *並返回指向const char的指針的const char的指針。

以上之后,比較容易看到剩下的項目:

  • int (*srslte_rf_start_rx_stream)(void *h, bool now); srslte_rf_start_rx_stream是一個指向函數的指針,該函數采用void *bool並返回int
  • int (*srslte_rf_stop_rx_stream)(void *h); srslte_rf_stop_rx_stream是一個指向采用void *並返回int的函數的指針。
  • void (*srslte_rf_flush_buffer)(void *h); srslte_rf_flush_buffer是一個函數,它采用void *並返回void (nothing)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM