c++ - 哪种转换在 C++ 中是正确的?

标签 c++ type-conversion

我想将void* 转换为char* reinterpret_cast 和static_cast,哪个适合? static_cast<char*> or reinterpret_cast<char*>

最佳答案

这主要是风格问题。 static_cast 可以做任意转换 这与隐式转换相反(并且不 删除 constvolatile)。由于 char*void* 是隐式的, static_cast 似乎已指示;通常的规则是使用 在可能的情况下,static_cast 优先于 reinterpret_cast

鉴于这种使用特别危险,一些编码指南 可能更喜欢 reinterpret_cast 来表示这一事实。

关于c++ - 哪种转换在 C++ 中是正确的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260656/

相关文章:

c++ - 在 C++ 中将 double 转换为 int 丢失 1

c++ - 我想我混淆了名称隐藏和函数覆盖

c++ - OpenGL 拾取 - 射线/球体相交错误

c++ - 为什么局部变量的地址对于不同的执行是相同的?

c++ - 为什么 Curiously Recurring Template Pattern (CRTP) 有效

C++:如何处理 NULL 值(例如来自数据库)?

c++ - 子类中的默认 move 构造函数

error-handling - SML 将字符串转换为带有错误捕获的 int

scala - 在Scala中,如何用这样的Option类重构代码?

c++ - 通过配置文件在运行时选择变量类型