我对box2d很新颖,我试图使用b2body对象中的userdata(类型为void *)字段来存储int值(枚举值,所以我知道对象的类型)。C++和box2d:userdata将int转换为void *
我现在正在做的事情是:
int number = 1023;
void* data = (void*)(&number);
int rNumber = *(int*)data;
,我得到正确的价值,但我一直在读围绕铸造到void *它不是便携或推荐...是我的代码跨平台?它是行为定义还是实施依赖?
谢谢!
Windows API会一直这样做(甚至更糟糕)。如果没有其他方式存储它以备后用,没有多少选择,但是是一个空指针。你可以用适当的C++类型转换来完成,但是(第一个不投射,第二个投射为“static_cast”)。 – chris 2012-07-25 07:44:23