__w64
這個 Microsoft 特定的關鍵字已經過時。 在 Visual Studio 2013 之前的 Visual Studio 版本中,這可讓您標記變數,因此當您使用 /Wp64 進行編譯時,編譯器會報告使用 64 位編譯器編譯時所報告的任何警告。
語法
類型
__w64
識別碼
參數
type
這三種類型之一,可能會導致程式碼從 32 位移植到 64 位編譯器時發生問題: int
、 long
或指標。
identifier
您建立的變數的識別項。
備註
重要
/Wp64 編譯器選項和 __w64
關鍵字在 Visual Studio 2010 和 Visual Studio 2013 中已被取代,並從 Visual Studio 2013 開始移除。 如果您在命令列上使用 /Wp64
編譯器選項,編譯器會發出命令列警告 D9002。 關鍵字 __w64
會以無訊息方式忽略。 使用以 64 位平臺為目標的 Microsoft C++ 編譯器,而不是使用此選項和 關鍵字來偵測 64 位可攜性問題。 如需詳細資訊,請參閱 設定 64 位 x64 目標的 Visual C++。
其上的任何 __w64
typedef 都必須是 x86 上的 32 位,而 x64 上的 64 位則為 64 位。
若要使用 Visual Studio 2010 之前的 Microsoft C++ 編譯器版本來偵測可攜性問題, __w64
應在任何變更 32 位和 64 位平臺之間大小的 typedefs 上指定 關鍵字。 對於任何這類類型, __w64
必須只出現在 typedef 的 32 位定義上。
為了與舊版相容, 除非指定編譯器選項 /Za(停用語言延伸模組), 否則_w64 是 的 __w64
同義字。
如果編譯不使用 /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
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應