获取函数名称作为符号(而不是字符串) - C预处理器

时间:2011-09-25 18:08:11

标签: c gcc c-preprocessor

C 中是否有办法获取可以使用令牌粘贴的函数名称 (我知道__FUNCTION____func__,但他们没有扩展到预处理名称, 我不希望这个名字是一个字符串。)

我希望能够做到这样的事情: prefix_ ## __func_name__,因此,在名称为func1()的函数中,我可以访问。{ 符号prefix_func1

(也许我仍然可以使用字符串,然后使用dlsym,但想知道是否存在 GCC中更简单的替代方案,不用担心可移植性。)

1 个答案:

答案 0 :(得分:2)

您可以将函数标识符设为宏,如

#define FUNC1 func1

void FUNC1(void)
{
   ...
}

然后使用FUNC1进行令牌粘贴。