gpt4 book ai didi

c++ - 澄清 : Porting 32 to 64 bit

转载 作者:可可西里 更新时间:2023-11-01 14:42:00 25 4
gpt4 key购买 nike

引自http://msdn.microsoft.com/en-us/library/windows/desktop/aa384242%28v=vs.85%29.aspx

Use UINT_PTR and INT_PTR where appropriate (and if you are uncertain whether they are required, there is no harm in using them just in case). Do not cast your pointers to the types ULONG, LONG, INT, UINT, or DWORD.

我可以安全地假设在现有 32 位代码行中将所有引用的 DWORD 转换为 UNIT_PTR 是安全的,没有任何副作用吗?

是否有其他推荐指南来移植在整个代码行中引用 DWORD 的 32 位代码?

最佳答案

这太粗糙了。只需让编译器为您完成工作,启用警告 4302 以便它会在指针值被截断时告诉您。将#pragma 放在一个好的地方,预编译的头文件将是理想的。或者指定 /we4302 编译器选项。

#pragma warning(default:4302)

int main()
{
int* p = 0;
long bad = (long)p; // C4302: 'type cast' : truncation from int* to long
return 0;
}

/Wp64 编译选项也很有用,无论如何都可以嗅探一下,但它 has problems .

关于c++ - 澄清 : Porting 32 to 64 bit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15096939/

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