![](/img/trans.png)
[英]C - struct with a function pointer, how to fix “variable number of arguments” warning?
[英]Pointer of a function with variable number of arguments
我有一個函數與以下原型:
void func(int an, ...);
我想存儲此功能的地址,稍后再調用它。 我真的不知道該怎么做,我竭盡全力:
void (*funcPtr)(int, ...); // Declaration
funcPtr = func; // Storage
(*funcPtr)(3,2,5); // Call
這段代碼編譯得很好,但在執行時它確實是垃圾,當我輸入我的函數時,我的va_list
中的參數不是我發送的。
提前致謝
編輯:好吧,我忘記了第一個論點。 在上面的代碼中,調用行應替換為:
(*funcPtr)(3,3,2,5); // Call
函數自然是指針。 所以你可以簡單地打電話:
funcPtr(3,3,2,5);
看起來你把一切都做對了。 如果函數沒有變量參數,那么使用參數的正確“形狀”聲明函數指針是一個非常好的主意,以防止傳遞格式錯誤的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.