__w64
(Microsoft 特定的) 這個關鍵字已過時。 在 Visual Studio 2013 之前的 Visual Studio 版本中,這可讓您標記變數,這樣一來當您使用 /Wp64 編譯時,編譯器會在您使用 64 位元編譯器編譯時回報任何警告。
type __w64 identifier
參數
type
當程式碼從 32 位元移植為 64 位元編譯器時可能產生問題的三種類型其中一項:int、long 或指標。identifier
您建立的變數的識別項。
備註
重要
/Wp64 編譯器選項和 __w64 關鍵字在 Visual Studio 2010 和 Visual Studio 2013 中已遭取代,並從 Visual Studio 2013 中移除。如果您在命令列使用 /Wp64 編譯器選項,則編譯器將發出Command-Line Warning D9002。以無訊息模式忽略 __w64 關鍵字。請改用以 64 位元平台為目標的 Visual C++ 編譯器,而非使用此選項和關鍵字來偵測 64 位元可攜性問題。如需詳細資訊,請參閱設定程式的 64 位元 (Visual C++)。
任何有 __w64 的 typedef 在 x86 上必須是 32 位元,在 x64 上必須是 64 位元。
若要使用 Visual Studio 2010 之前的 Visual C++ 編譯器版本來偵測可移植性問題,該在 32 位元和 64 位元平台之間變更大小的任何 typedef 上指定 __w64 關鍵字。 對任何此種類型,__w64 必須只出現在 typedef 的 32 位元定義。
如果編譯不使用 __w64,/Wp64 關鍵字會被忽略。
如需移植至 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
}