pyt*_*hor 4 c gcc function-pointers
有没有办法获得指向当前函数的指针,可能通过gcc扩展或其他一些技巧?
编辑我很好奇是否可以在没有明确使用函数名称的情况下获取函数指针.我以为我有充分的理由想要这个,意识到我不是真的,但我仍然很好奇是否有可能.
这不是特别便携,但应该至少在某些平台上工作(例如,Linux和OSX,我可以检查文档;它肯定不适用于缺少API的Windows):
#include <dlfcn.h>
// ...
void *handle = dlopen(NULL, RTLD_LAZY);
void *thisfunction = handle ? dlsym(handle, __FUNCTION__) : NULL;
if (handle) dlclose(handle); // remember to close!
Run Code Online (Sandbox Code Playgroud)
还有一些其他不太便携的快捷方式适用于某些平台,但不适用于其他平台.这也不快; static如果你需要速度,请缓存它(例如,在局部变量中).