__w64

(特定于 Microsoft 的) 可以标记变量,因此,在使用编译 /Wp64 时编译器将报告报告的所有警告您是否使用编译为 64 位编译器。

type __w64 identifier

参数

  • type
    在从 32 位 ported 的代码可能会引发问题到 64 位编译器三种类型之一: intlong或指针。

  • 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
}

请参见

参考

C++关键字