基本上我想要做的是,根據某些變量,將void指針轉換爲不同的數據類型。例如(在「投」變量只是爲了瞭解我點的東西):Casting void指針,取決於數據(C++)
void* ptr = some data;
int temp = some data;
int i = 0;
...
if(temp == 32) cast = (uint32*)
else if(temp == 16) cast = (uint16*)
else cast = (uint8*)
i = someArray[*((cast)ptr)];
是否有在C++中,可以做這樣的事情(因爲你不能真正分配一個變量是什麼只是(uint32 *)或類似的東西)?我很抱歉,如果這不明確,任何幫助將不勝感激。
爲什麼不只是在做測試時施放? if(temp == 32)index =(uint32 *)ptr; //等 – 2009-05-27 01:06:38
是的,這是顯而易見的方式,但是如果我這樣做了,我會需要數百個if ... elses。 if(temp == 32)i = someArray [* index32]; else if(temp == 16)i = someArray [* index16];等我希望有一些簡單的方法來做到這一點,如上所述。 – Joel 2009-05-27 01:13:35
你還需要數百個if/elses? – 2009-05-27 01:17:41