C语言 使用宏从字符串调用函数



我有一系列需要调用的函数,所有调用的形式都是:

StartingFunctionName[Thing]Callback(&[Thing]);

其中[Thing]每次都是相同的例如,我必须调用

StartingFunctionNameMyFunctionCallback(&MyFunction);

,我宁愿做foo(MyFunction);,其中foo将是宏。

我想知道是否有一种方法可以使用宏,使其输入是字符串(或类似的东西)的东西,输出是正确的代码行。

如果这是你的模式:

StartingFunctionName[Thing]Callback(&[Thing]);

和你想要的标记'Thing'替换,然后通过函数像宏:

#define foo(Thing) 
StartingFunctionName##Thing##Callback(&Thing)

例子:

foo(exit);

扩大到

StartingFunctionNameexitCallback(&exit);

答案是使用###define foo(thing) StartingFunctionName##thing(& thing)

最新更新