gpt4 book ai didi

c++ InterlockedExchange指针和指针对齐

转载 作者:行者123 更新时间:2023-11-30 04:39:19 25 4
gpt4 key购买 nike

documentation for the InterlockedExchangePointer Function状态:

On a 64-bit system, the parameters are 64 bits and the Target parameter must be aligned on 64-bit boundaries; otherwise, the function will behave unpredictably. On a 32-bit system, the parameters are 32 bits and the Target parameter must be aligned on 32-bit boundaries.

我正在为 32 位编译,程序将在 32 位和 64 位架构上运行;以下结构是否提供了指针,这些指针可由 InterlockedExchangePointer 在任何(32 或 64 位)运行架构上使用而无需代码调整

template <class T>
struct Foo {
enum { count = 3 };
__declspec(align(64)) T objects[count];
};

(我想如果单个指针在 64 位上对齐,它也会在 32 位上对齐——即使在 32 位上运行时有填充)

谢谢。

最佳答案

在 64 位系统上为 32 位平台编写的程序将通过兼容层(WoW,Windows on Windows)运行,并且您的指针必须在 32 位上对齐。

但是,如果您在 64 位模式下编译您的程序 - 您的指针将在 64 位模式下自动对齐。

关于c++ InterlockedExchange指针和指针对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2319425/

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