Aracılığıyla paylaş


Derleyici uyarısı (düzey 1) C5033

'storage-class-keyword' artık desteklenen bir depolama sınıfı değil

auto ve register depolama sınıfı anahtar sözcükleri kullanım dışı bırakıldı veya C++ dilinden kaldırıldı.

Açıklamalar

Visual Studio 2010 ve üzeri: C++11'de anahtar auto sözcük artık C++ depolama sınıfı tanımlayıcısı değildir ve register anahtar sözcük kullanım dışıdır.

Visual Studio 2017 sürüm 15.7 ve üzeri: (mod ve sonraki sürümlerde /std:c++17 kullanılabilir): register Anahtar sözcük C++17 ve üzeri standartlarda C++ dilinden kaldırılır.

C++ standardı, anahtar sözcük için auto özgün ve düzeltilmiş bir anlamı tanımlar. C++11'den önce anahtar auto sözcüğü otomatik depolama sınıfında bir değişken bildirir; yani yerel ömrü olan bir değişkendir. C++11'den başlayarak anahtar sözcüğü, auto türü bildirimindeki başlatma ifadesinden çıkarılmış bir değişken bildirir. Geriye dönük uyumluluk için derleyici seçeneğini kullanarak /Zc:auto anahtar sözcüğün auto anlamını denetleyebilirsiniz.

Anahtar register sözcüğü başlangıçta derleyiciye bir değişkeni bir yazmaca yerleştirme önerisi olarak amaçlandı. Anahtar sözcüğü derleyiciler tarafından düzenli olarak yoksayıldı. Bunun yerine, derleyiciler değişkenlerin çağrı kurallarını ve iyileştirme düzeylerini karşılamak için yazmaçlara yerleştirilip yerleştirilmeyeceğini denetler. Anahtar register sözcük, gelecekte kullanılmak üzere standart olarak ayrılmıştır.

Örnek

// 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

Bu sorunu düzeltmek için depolama sınıfı tanımlayıcı anahtar sözcüğünü kaldırın register .

Ayrıca bkz.

Depolama sınıfı