我知道reinterpret_cast
主要用于去往或来自char*
。为什么我可以使用static_cast With void *但不能使用char *
但我很惊讶地发现static_cast
可以做到与void*
相同。例如:
auto foo "hello world"s;
auto temp = static_cast<void*>(&foo);
auto bar = static_cast<string*>(temp);
我们使用reinterpret_cast
和char*
在static_cast
和void*
收获了什么?这与严格的别名问题有关吗?
通常情况下,你投到一个'char *'做一些单独的字节。你不能用'void *'来做到这一点。 – NathanOliver
@NathanOliver所以你说的就像'memcpy'或类似的东西? –
'memcpy'就是其中之一。流的'read'和''wrtie'功能是其他功能。如果你需要通过com数据发送东西,你也可以这样做。 – NathanOliver