当前位置: 技术问答>linux和unix
在LINUX下使用强制类型转换reinterpret_cast 出错?
来源: 互联网 发布时间:2015-09-02
本文导语: 程序可以在vc6.0下运行通过代码如下: #include typedef int (*TFUN)(void); int TestFun(void) { printf("Show me the money!n"); return 10; } int main() { void *kkk; kkk = reinterpret_cast(&TestFun); TFUN yyy = reinterpret_cast(kkk); yyy(); return 0; ...
程序可以在vc6.0下运行通过代码如下:
#include
typedef int (*TFUN)(void);
int TestFun(void)
{
printf("Show me the money!n");
return 10;
}
int main()
{
void *kkk;
kkk = reinterpret_cast(&TestFun);
TFUN yyy = reinterpret_cast(kkk);
yyy();
return 0;
}
#include
typedef int (*TFUN)(void);
int TestFun(void)
{
printf("Show me the money!n");
return 10;
}
int main()
{
void *kkk;
kkk = reinterpret_cast(&TestFun);
TFUN yyy = reinterpret_cast(kkk);
yyy();
return 0;
}
|
gcc禁止在数据指针和函数指针之间做C++转换,因为很可能函数指针和数据指针大小会不一样。如果要转换,只好用C里面的类型转换了。