好的我有一个变量
void * vp
通过一个函数
proccessData (void * vp)
我有一个接受以下参数的函数
findIDType(const char* const pointer)
并希望将pv传递为findIDType(pv)
使用GNU 2.95.3编译
不能使用任何其他编译器btw。
问题是编译器没有告诉我为什么它不被接受,
它只是打印出一条消息cannot
而没有任何有用的描述。
如何施展?从void*
到const char* const
我试过(char*)pv
,(const char*)pv
和(const char* const)pv
没有运气
答案 0 :(得分:2)
你必须使用reinterpret_cast
,并转换为你希望传递的完整类型,这应该有效:
const char* const ptrTpPass = reinterpret_cast<const char* const>(vp);
但正如评论中所提到的,static_cast
也会起作用,实际上更可取:
const char* const ptrTpPass = static_cast<const char* const>(vp);