我使用dlsym()加载的函数符号为什么要在函数中使用typedef,而将void *转换为函数指针?
void (*func)(int);
func = (func*)dlsym(phandle, "function");
这是导致编译错误。 然而,当我做的typedef功能
typedef void (*func)(int);
func function = null;
function = (func*)dlsym(phandle, "function");
这个编译很好,但我不明白,为什么它是在第一种情况下失败? 任何人都可以请说出原因吗? 我读过C++标准不允许直接从void *转换为函数指针? 为什么这个以及typedef是如何解决这个问题的?
什么是汇编错误? – 2013-03-21 10:40:57