Bagikan melalui


Peringatan kompiler (level 1) C5033

'storage-class-keyword' bukan lagi kelas penyimpanan yang didukung

Kata auto kunci kelas penyimpanan dan register telah ditolak atau dihapus dari bahasa C++.

Keterangan

Visual Studio 2010 dan yang lebih baru: Di C++11, auto kata kunci bukan lagi penentu kelas penyimpanan C++, dan register kata kunci tidak digunakan lagi.

Visual Studio 2017 versi 15.7 dan yang lebih baru: (tersedia dalam /std:c++17 mode dan yang lebih baru): Kata register kunci dihapus dari bahasa C++ dalam standar C++17 dan yang lebih baru.

Standar C++ mendefinisikan arti asli dan direvisi untuk auto kata kunci. Sebelum C++11, auto kata kunci mendeklarasikan variabel di kelas penyimpanan otomatis ; yaitu, variabel yang memiliki masa pakai lokal. Mulai dari C++11, auto kata kunci mendeklarasikan variabel yang jenisnya disimpulkan dari ekspresi inisialisasi dalam deklarasinya. Untuk kompatibilitas mundur, Anda dapat menggunakan /Zc:auto opsi pengkompilasi untuk mengontrol arti auto kata kunci.

Kata register kunci awalnya dimaksudkan sebagai saran kepada pengkompilasi untuk menempatkan variabel dalam register. Kata kunci secara rutin diabaikan oleh pengkompilasi. Sebaliknya, kompilator mengontrol apakah variabel ditempatkan dalam daftar untuk memenuhi konvensi panggilan dan tingkat pengoptimalan. Kata register kunci dicadangkan dalam standar untuk digunakan di masa mendatang.

Contoh

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

Untuk memperbaiki masalah ini, hapus kata kunci penentu register kelas penyimpanan.

Baca juga

Kelas penyimpanan