gpt4 book ai didi

c++ - uintptr_t 与 DWORD_PTR 的用法

转载 作者:太空狗 更新时间:2023-10-29 23:50:19 27 4
gpt4 key购买 nike

两者都用于存储地址和进行指针运算,两者都在 WinAPI 中定义,我什么时候应该使用 uintptr_t (cstdint) 与 DWORD_PTR (Windows.h )?在x86和x86_64中分别是32位和64位

A DWORD_PTR is an unsigned long type used for pointer precision. It is used when casting a pointer to an unsigned long type to perform pointer arithmetic. DWORD_PTR is also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.

我不打算让我的代码具有可移植性,我坚持使用 WinAPI。什么类型是最佳用例?

最佳答案

首选 uintptr_t它是 C++11 及更高版本的 C++ 标准的一部分。 DWORD_PTR特定于 Visual C++,因此不可移植。

虽然 Visual C++ 可能会选择将 uintptr_t 实现为 DWORD_PTRunsigned long,但这取决于他们,坚持使用标准库会更安全。

关于c++ - uintptr_t 与 DWORD_PTR 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32100059/

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