5
我想創建一個宏(C/C++)來動態地創建一個函數的函數名。基本上我有一個函數,其名稱在「MyClassA」部分中有所不同。此外,應該通過宏定義來傳遞參數。然後在函數內部有一個可變的方法調用,例如「methodForClassA」,再次有一組變量的參數。動態創建與宏
void Java_somepackage_MyClassA_fixMethod(int arg1, int arg2) {
Toolbox.methodForClassA(arg1, arg2);
}
這種模式有超過40個功能。當然,我可以手動或使用腳本創建它們。但是,宏也可以做到這一點?例如這樣的事情(不工作):
# define MACRO_TEST(classname, methodname, args, argsMethod) void Java_somepackage_##classname_fixMethod(##args) {\
Toolbox.##methodname(##argsMethod);\
}
MACRO_TEST(MyClassA, methodForClassA, args1, args2)
一些實驗和文檔的閱讀後,我只能找出如何創建模式「動態」功能名,其中「(」跟隨在動態部分:
#define FUNCTION(name, x) int func_##name() { return x;}
FUNCTION(test, 2);
問候,