3
A
回答
6
這意味着Callback
是該類型的新名稱:指向函數返回一個int並考慮類型的兩個參數的常量指向void「和「INT」。
給定一個功能f
:
int f(void * const param, int s)
{
/* ... */
}
的Callback
可以被用來存儲一個指針f
:
Callback c = &f;
功能f
可以通過指針稍後調用而不直接參考其名稱:
int result = c(NULL, 0);
在通話時,名稱f
未出現。
2
它創建一個新的「別名」或名稱,通過它可以引用指向返回int
並帶兩個參數的函數的指針:a void* const
和int。然後,您可以創建該類型的變量,分配給他們,通過他們等調用函數,如:
int fn(void * const param,int s) { ... }
Callback p;
p = fn;
int x = p(NULL, 38);
注意typedef
■不要真正創造新類型的... ...每一個等效的typedef解析爲單真正的類型重載,模板實例化等的目的..
2
它聲明的函數類型:
// Set up Callback as a type that represents a function pointer
typedef int (*Callback)(void * const param,int s);
// A function that matches the Callback type
int myFunction(void* const param,int s)
{
// STUFF
return 1;
}
int main()
{
// declare a variable and assign to it.
Callback funcPtr = &myFunction;
}
相關問題
- 1. C++ obfuscated typedef聲明
- 2. typedef聲明語法
- 3. 聲明typedef類型
- 4. typedef /別名聲明的聲明
- 5. C++中的typedef的前向聲明
- 6. C++的非類向前聲明的typedef
- 7. 的typedef與向前聲明stuct用C
- 8. C編程抽象 - typedef外部聲明
- 9. Typedef和C中的複合聲明
- 10. 正向聲明一個typedef
- 11. 類擴展和typedef聲明
- 12. typedef模板類的聲明
- 13. Typedef結構錯誤聲明?
- 14. 聲明塊如下:typedef
- 15. 和的typedef函數聲明
- 16. 正由typedef聲明什麼?
- 17. 將typedef聲明爲函數
- 18. 的typedef anonymus枚舉聲明後
- 19. 可以訪問在類聲明中聲明的typedef嗎?
- 20. 使用指針的typedef聲明
- 21. 在obj-c @interface中轉發聲明C typedef的選項
- 22. 如何聲明extern typedef結構體?
- 23. struct typedef中的聲明規則
- 24. 如何理解本聲明中的typedef
- 25. C++的typedef一個std ::對,然後使用的typedef聲明地圖
- 26. 有沒有辦法來聲明一個Objective-C塊typedef,其參數包含typedef?
- 27. 這個typedef聲明是做什麼的?
- 28. 如何在Swift中聲明typedef
- 29. 函數指針的前向聲明typedef
- 30. 與typedef和函數聲明的錯誤
,我該如何實現這個功能呢? – gln 2010-12-07 07:49:21
@gln:它是一個指向函數的指針,它通常意味着指向與簽名匹配的現有函數 – icecrime 2010-12-07 07:52:29