__w64
(特定于 Microsoft 的) 可以标记变量,因此,在使用编译 /Wp64 时编译器将报告报告的所有警告您是否使用编译为 64 位编译器。
type __w64 identifier
参数
type
在从 32 位 ported 的代码可能会引发问题到 64 位编译器三种类型之一: int、 long或指针。identifier
您创建的变量的标识符。
备注
重要事项 |
---|
/Wp64 编译器选项和关键字 __w64 已弃用,并将从在编译器的未来版本。如果在命令行中使用 /Wp64 编译器选项,编译器将发出命令行警告 D9035。请使用面向 64 位平台的 Visual C++ 编译器,而不要使用此选项和关键字来检测 64 位可移植性问题。有关更多信息,请参见 64 位配置的程序 (Visual C++)。 |
具有此操作的 __w64 的所有 typedef 必须是在 x86 的 32 位和在 Itanium 处理器系列的 64 位 (IPF)。
在更改在 32 位和 64 位平台之间的范围内的所有函数应指定 __w64 关键字。对任何此类类型, __w64 应仅在 typedef 的 32 位定义。
,如果生成不使用 /Wp64, __w64 关键字被忽略。
有关移植到 64 位的更多信息,请参见以下主题:
示例
// __w64.cpp
// compile with: /W3 /Wp64
typedef int Int_32;
#ifdef _WIN64
typedef __int64 Int_Native;
#else
typedef int __w64 Int_Native;
#endif
int main() {
Int_32 i0 = 5;
Int_Native i1 = 10;
i0 = i1; // C4244 64-bit int assigned to 32-bit int
// char __w64 c; error, cannot use __w64 on char
}