gpt4 book ai didi

c++ - reinterpret_cast< > 从一个结构到另一个

转载 作者:行者123 更新时间:2023-11-28 02:25:21 24 4
gpt4 key购买 nike

我正在检查一个 win32 程序,我发现部分代码包含 reinterpret_cast<>从一种结构到另一种结构。发生了什么

PKT_HEADER* pPktHeader = reinterpret_cast<PKT_HEADER*>( buffer );

pPktHeaderbuffer是两个结构指针。

我的问题是这里发生了什么?

最佳答案

迂腐地说,它是将一个指针转换为另一个指针,而不是将一种结构转换为另一种结构。在大多数环境中,无论对象是什么,指向对象的指针都是相同大小的 - 所以这可行。

它告诉编译器假定缓冲区实际上包含一个 PKT_HEADER。如果是这样,那么它应该可以正常工作。如果 buffer 包含不同的数据结构,那么使用 pPktHeader 将是未定义的行为,任何事情都可能发生。

关于c++ - reinterpret_cast< > 从一个结构到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30894320/

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