2010-07-27 121 views
1

下面是我試圖實現的一個例子。我試圖創建一個宏,這將是這樣的:可變參數函數的objective-c宏

SOMEMACRO(obj, obj, obj, ..., obj); 

宏將編譯爲:

some_function(obj, obj, obj, ..., obj, SOMETHING_ELSE, SOMETHING_ELSE); 

下面是一個1個參數功能的示例宏:

#define SOMEMACRO(x) some_function(x, SOMETHING_ELSE, SOMETHING_ELSE) 

但它只適用於一個參數(x)

所以基本上我需要同樣的東西,但所以我可以通過可變數量的參數。編譯器將(和)之間的任何內容都替換爲X並將其簡單地替換爲X會很好。我不確定我是否很清楚這個問題,但我希望你能理解。

感謝您的任何幫助。

回答

1
#define SOMEMACRO(...) some_func(__VA_ARGS__, SOMETHING_ELSE, SOMETHING_ELSE); 
1

對不起,我放棄尋找過早,我猜。要回答我的問題:

的可變參數函數宏是這樣的:

#define MACRONAME(...) some_function(__VA_ARGS__, SOMETHING_ELSE, SOMETHING_ELSE)