gpt4 book ai didi

c++ - 这是什么 reinterpret_cast 约定?它比 static_cast 好吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:48:16 24 4
gpt4 key购买 nike

<分区>

我正在查看一些提供 c api 的 c++ 包装器代码,我发现很多 reinterpret_cast 其中 static_cast 就足够了,例如:

struct cpp_object{ void foo(){ /* do something */ } };

/* begin: c api */
typedef void c_object;

void foo(c_object *o)
{
// why this:
reinterpret_cast<cpp_object *>(o)->foo();
// instead of just:
static_cast<cpp_object *>(o)->foo();
}
/* end: c api */

通常我在极少数情况下使用 reinterpret_cast,主要与将缓冲区内容强制位转换为已知布局和大小的类型有关,已知位于缓冲区内容中。

所以我问这种做法是否有意义,或者坚持 static_cast 会更好。

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