gpt4 book ai didi

c++ - reinterpret_cast(char*) 与 static_cast(static_cast(char*)) - 使用哪个?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:41 28 4
gpt4 key购买 nike

当你动态分配了一个 char * 类型的缓冲区并想将它转换为特定类型时,你是否应该使用类似的东西

reinterpret_cast<int *>(char *)

或者类似的东西

static_cast<int *>(static_cast<void *>(char *))

为什么?

我个人很想使用后者,因为对我来说,它并不是真正的数据“重新解释”(而只是一种分配缓冲区的机械方式)而且它看起来不像是一个来源错误的方式可能与典型的 reinterpret_cast 相同,但这是正确的直觉吗?

最佳答案

According to Dave Abrahams , 使用链式 static_cast s 是强制指针类型的正确、标准方法。

我个人使用 reinterpret_cast在这些情况下,因为我永远不必处理会用链式 static_cast 做一件事的架构。 s 和一个不同的东西 reinterpret_cast .

关于c++ - reinterpret_cast<int*>(char*) 与 static_cast<int*>(static_cast<void*>(char*)) - 使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856900/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com