gpt4 book ai didi

c++ - PBYTE 和 BYTE* 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 00:49:22 24 4
gpt4 key购买 nike

正如 Windows 数据类型所说 PBYTE 只是一个指向 BYTE 的指针,那么在 c++ 中声明一个 有什么区别>BYTE*PBYTEPBYTELPBYTE 之间有什么区别? L 代表 LONG 吗?

最佳答案

在 PBYTE 和 BYTE 是类型定义的命名约定中,PBYTE 是指向 BYTE 的指针。所以 PBYTE 和 BYTE * 之间没有有意义的区别(除非您一次声明多个变量。

所以

PBYTE x, y;

声明了两个指针但是

BYTE *x, y;

将 x 声明为指针,将 y 声明为 BYTE(必须使用附加星号才能使 y 成为指针。)。这种事情是错误的常见来源 - 尽管当按预期使用变量时,编译器通常可以快速检测到错误。

对于支持多种指针大小(例如 near、far、huge)的实现,LPBYTE 有时表示远指针。这在标准 C++(一种内存模型)中是没有意义的。然而,一些具有分段内存架构的旧架构(例如旧的 IBM 兼容 PC)需要不同类型的芯片提供不同类型的内存,并且需要不同的指针类型来解决它们。进行虚拟化的现代操作系统将这类事情抽象化了。

关于c++ - PBYTE 和 BYTE* 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28241967/

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