gpt4 book ai didi

c++ - PVOID buffer转PCHAR有什么意义?

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

我在 MS 代码示例中看到下一个代码:

PVOID alignedBuffer[BUFFER_SIZE/sizeof( PVOID )];
PCHAR buffer = (PCHAR) alignedBuffer;

hResult = FilterSendMessage( context->Port,
&commandMessage,
sizeof( COMMAND_MESSAGE ),
buffer,
sizeof(alignedBuffer),
&bytesReturned );

(alignedBuffer 将保存作为重播传递给 FilterSendMessage 调用的结构数组)将 PVOID 转换为 PCHAR 有什么意义,这是否有助于对齐,如何?

最佳答案

您没有将 PVOID 转换为 PCHAR。您正在将 PVOID 数组(衰减为 PVOID *)转换为 PCHAR

PVOID alignedBuffer[BUFFER_SIZE/sizeof( PVOID )];

这将 alignedBuffer 定义为 PVOID(或 void *)的数组。作为指针数组,它将适当对齐(通常在 32 位上为 4 个字节,在 64 位上为 8 个字节)。如果你只是简单地做

CHAR buffer[BUFFER_SIZE];

没有类似的保证,因为 CHAR 没有对齐要求。

关于c++ - PVOID buffer转PCHAR有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24672256/

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