我对reinterpret_cast
vs static_cast
的适用性有点困惑。据我所知,一般规则是当类型可以在编译时解释时使用静态强制转换,因此有了static
这个词。这也是c++编译器内部用于隐式类型转换的类型转换。
# eyz0适用于两种情况:
我有点困惑的地方是我需要的一种用法,我从C调用c++, C代码需要保持c++对象,所以基本上它持有void*
。应该使用什么类型转换在void *
和类类型之间?
我已经看到使用static_cast
和reinterpret_cast
?虽然从我所读到的似乎static
更好,因为强制转换可以在编译时发生?虽然它说使用reinterpret_cast
从一种指针类型转换到另一种?