簡體   English   中英

返回對 C 中函數指針的調用

[英]Returning a call to a pointer to a function in C

來自21 世紀 C一書:

從概念上講,函數類型的語法實際上是指向給定類型函數的指針。 如果您有一個帶有標題的函數,例如:

 double a_fn(int, in); //a declaration

然后只需添加一個星號(和括號來解決優先級)來描述指向此類函數的指針:

 double (*a_fn_type)(int, int); //a type: pointer-to-function

然后將 typedef 放在它前面來定義一個類型:

 typedef double (*a_fn_type)(int, int); //a typedef for a pointer to function

現在您可以將它用作任何其他類型,例如聲明一個將另一個函數作為輸入的函數:

 double apply_a_fn(a_fn_type f, int first_in, int second_in){ return f(first_in, second_in); //shouldn't this be *f(first_in, second_in) ? }

問題:最后一個函數的返回值不應該是*f(first_in, second_in) ,因為f是一個指向函數的指針,而*f表示實際的函數?

用於調用函數指針的解引用運算符在 C 中可選的

暫無
暫無

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

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