[英]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
表示實際的函數?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.