共用方式為


編譯器警告 (層級 1) C5033

'storage-class-keyword' 不再是支持的記憶體類別

autoregister 儲存類別關鍵詞已被取代或從 C++ 語言中移除。

備註

Visual Studio 2010 和更新版本: 在 C++11 中, auto 關鍵詞不再是記憶體類別規範C++,而且 register 關鍵詞已被取代。

Visual Studio 2017 15.7 版和更新版本: (適用於 /std:c++17 模式和更新版本):關鍵詞 register 會從 C++17 和更新版本中的 C++ 語言中移除。

C++ 標準為 auto 關鍵字定義了原始和修訂的意義。 在C++11 之前,auto關鍵詞會在自動儲存類別中宣告變數;也就是具有本機存留期的變數。 從 C++11 開始, auto 關鍵詞會宣告自其宣告中的初始化運算式推斷其類型的變數。 為了保持回溯相容性,您可以使用 /Zc:auto 編譯程式選項來控制 關鍵詞的意義 auto

關鍵詞 register 原本意在建議編譯程式將變數放在緩存器中。 編譯程式會定期忽略 關鍵詞。 相反地,編譯程式會控制變數是否放在緩存器中,以滿足呼叫慣例和優化層級。 關鍵詞 register 會保留於標準中以供日後使用。

範例

// c5033.cpp
// compile by using: cl /c /std:c++17 c5033.cpp

register int value; // warning C5033: 'register' is no longer a supported storage class

若要修正此問題,請移除 register storage-class specifier 關鍵詞。

另請參閱

儲存類別