是否可以將函數的參數列表傳遞給另一個函數?C++轉發函數調用
例如在我的函數中,我想用可變參數列表中的參數調用我的函數B /函數C(取決於執行狀態)。請注意,我不能更改functionB/functionC聲明。
int functionA(int a, ...){
...
va_list listPointer;
va_start(listPointer, a);
...
}
int functionB(long b, long c, long d){
...
...
}
int functionC(long b, int c, int d){
...
...
}
對於這個項目我使用gcc 4.9.1。
我曾嘗試到現在是通過從listPointer虛空*,但它並沒有從va_list的工作...
提取變量也不會起作用,因爲我有一個像其他80種similair功能,這應該從函數A調用,這意味着我無法提取參數並通過提取的值調用。
也許有一種方法可以複製functionA參數的內存,並用指向它的函數調用functionB/functionC?有沒有人有一個如何可能的想法?
讀出來,從'va_list的listPointer'在功能'functionA',和值傳遞他們'functionB'然後。或者是由於某種原因沒有打算? –
@StephanLechner是的,根據邏輯,我的函數A也可能調用具有不同參數類型的其他函數...這就是爲什麼顯式提取參數不會工作的原因......我將這個添加到我的問題中 –
[在C中轉發可變參數的調用]的可能副本(http://stackoverflow.com/questions/150543/forward-an-invocation-of-a-variadic-function-in-c) – Lanting