c++ - 将 void 指针传递给具有 const char * const 的函数

标签 c++ pointers casting

好的,我有一个变量

void * vp

通过一个函数 processData (void * vp)

我有一个接受以下参数的函数

findIDType(const char* const pointer) 并希望将 pv 作为 findIDType(pv)

传递

使用 GNU 2.95.3 编译

顺便说一句,不能使用任何其他编译器。

问题是编译器没有告诉我为什么它 Not Acceptable , 它只是打印出一条消息 cannot 而没有任何有用的描述。

如何转换?从 void*const char* const

我试过 (char*)pv, (const char*)pv(const char* const)pv 都没有成功

最佳答案

您必须使用reinterpret_cast,并强制转换为您想要传递的完整类型,这应该可行:

const char* const ptrTpPass = reinterpret_cast<const char* const>(vp);

但是正如评论中提到的,static_cast 也可以工作并且实际上更可取:

const char* const ptrTpPass = static_cast<const char* const>(vp);

关于c++ - 将 void 指针传递给具有 const char * const 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19591962/

相关文章:

c++ - 为什么在 C++11 中使用非成员开始和结束函数?

c# - 当限制已包含接口(interface)时,在泛型类型限制中使用类子句

c++ - 如何获取 std::wstring 的字节大小?

c++ - 从 llvm ir 中删除完整的分支

c - 使用 int 指针保存 int 类型数组的地址及其索引值误解

c++ - 通过指针的指针访问的模板继承的编译错误

c++ - 将迭代器转换为一对对象

java - 如何避免许多小类的代码重复?

c++ - 如何使用spirit解析器获取错误位置

C语言 : Referencing char arrays in nested struct