簡體   English   中英

具有可變數量參數的函數的指針

[英]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.

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