在Delphi中,编译器指令WIN32和CPUX86、WIN64和CPUX64是否可以互换使用?

5

在Delphi中,编译器指令WIN32和CPUX86、WIN64和CPUX64可以互换使用吗?

如果可以,哪一个更好?如果不行,为什么?


5
文档可以告诉你答案:http://docwiki.embarcadero.com/RADStudio/en/Conditional_compilation_(Delphi) - David Heffernan
1个回答

13

它们是否可互换取决于您正在开发的平台。

通常情况下,如果只是针对Windows开发,则它们可以互换使用,否则不能。

WIN32 仅定义在 Windows 32位平台上,WIN64 仅定义在 Windows 64位平台上。

然而,CPUX86 定义在几个平台上:Windows 32位、OSX 32位和iOS 32位模拟器。

目前,WIN64CPUX64 只定义在 Windows 64位平台上,因此目前它们可以互换使用,但这可能会在未来发生变化。

应该使用哪个指令取决于您的代码。使用能够传达适当意义的指令。如果代码部分只有在 Windows 32位平台上运行,则应使用 WIN32 指令;如果它旨在在任何平台下但在32位 x86处理器下运行,则应使用 CPUX86

预定义条件编译指令


很好的清晰回答。其实我不知道为什么要问这个简单的问题,我应该自己想明白的。 - justyy
很好,你提到了参考预定义条件 - 如果它在结论句中可能会更好。 - Wolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接