Perbezaan Antara Const dan Constexpr Pembolehubah
Dalam C , kata kunci const dan constexpr kedua-duanya digunakan untuk menentukan pemalar. Walau bagaimanapun, terdapat perbezaan yang ketara antara kedua-duanya dari segi cara ia digunakan dan kesannya terhadap tingkah laku kod.
Definisi:
- const: Mengisytiharkan pembolehubah malar yang tidak boleh diubah suai selepas permulaan. Ia boleh dimulakan pada masa penyusunan atau masa jalan.
- constexpr: Mengisytiharkan pembolehubah pemalar masa kompilasi yang mesti dimulakan dengan ungkapan malar yang dinilai pada masa penyusunan.
Penggunaan:
-
PI1 (const): Boleh dimulakan pada masa penyusunan atau masa jalan, dan tidak boleh diubah suai selepas itu.
-
PI2 (constexpr): Mesti dimulakan pada masa penyusunan dengan ungkapan tetap, dan tidak boleh diubah suai. Ia boleh digunakan dalam konteks yang memerlukan pemalar masa kompilasi.
Contoh:
Pertimbangkan takrifan berikut:
const double PI1 = 3.141592653589793;
constexpr double PI2 = 3.141592653589793;
Salin selepas log masuk
-
PI1: Boleh digunakan dalam konteks di mana pembolehubah const diperlukan, tetapi tidak boleh digunakan dalam konteks yang memerlukan pemalar masa kompilasi.
-
PI2: Boleh digunakan dalam konteks di mana kedua-dua pemalar masa const dan kompilasi diperlukan.
Penggunaan Pilihan dalam C 11:
Gaya pilihan dalam C 11 bergantung pada keperluan khusus aplikasi:
- Jika anda memerlukan pembolehubah malar yang boleh dimulakan pada masa jalan dan tidak perlu digunakan dalam konteks yang memerlukan pemalar masa kompilasi, gunakan const.
- Jika anda memerlukan pemalar masa kompilasi yang mesti dimulakan dengan ungkapan malar dan boleh digunakan dalam konteks yang memerlukan pemalar masa kompilasi, gunakan constexpr.
Atas ialah kandungan terperinci Apakah Perbezaan Antara Pembolehubah `const` dan `constexpr` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!