我對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