_32和_64的等价程序

_32_ and _64_ equivalents in Visual C++

本文关键字:程序      更新时间:2023-10-16

我想在Visual C中定义32(32位编译)和64?我徒劳地浏览了MSDN。

你认为3264的这种定义可行吗?

#define _32_ if !(defined __LP64__ || defined __LLP64__) || defined _WIN32 && !defined _WIN64
        // we are compiling for a 32-bit system
the else statement will be _64_ definition
        // we are compiling for a 64-bit system

谢谢!

来自文档:

_M_IX86:为x86处理器定义。。。这不是为x64处理器定义的。

_M_X64:为X64处理器定义。

_M_IA64:为安腾处理器系列64位处理器定义。

_WIN32:为WIN32和Win64的应用程序定义。始终定义。

_WIN64:为WIN64应用程序定义。

任你选择。

您可能会在枚举所有可能的处理器体系结构和了解其int大小时陷入困境,但我建议使用_WIN64,它是在任何处理器上构建64位可执行文件时定义的,而不是在构建32位时定义的。

Visual C++早在很久以前就支持它了,甚至可能是Visual C++2003。

始终存在_WIN64预处理器宏。Raymond Chen很好地涵盖了这个主题:http://blogs.msdn.com/b/oldnewthing/archive/2006/09/06/742710.aspx

如果您查看MSDN,它显示_M_X64是为64位处理器定义的。