Dalam C , kata kunci const dan constexpr digunakan untuk menentukan pemalar. Kedua-dua pengubah suai menghalang nilai pembolehubah daripada diubah selepas ia dimulakan. Walau bagaimanapun, terdapat perbezaan halus antara kedua-duanya yang mungkin menjejaskan pilihan anda semasa mentakrifkan pemalar.
Perbezaan utama antara const dan constexpr terletak dalam apabila pemalar dimulakan. pembolehubah const boleh dimulakan pada masa penyusunan atau masa jalankan, manakala pembolehubah constexpr mesti dimulakan pada masa penyusunan.
Ini mempunyai beberapa implikasi:
Pertimbangkan coretan kod berikut:
const double PI1 = 3.141592653589793; // compile-time or run-time initialization constexpr double PI2 = 3.141592653589793; // compile-time initialization only
PI1 boleh dimulakan pada masa penyusunan atau masa larian, bergantung pada masa nilai diketahui. PI2, sebaliknya, mesti dimulakan pada masa penyusunan.
pembolehubah konstexpr mempunyai kelebihan untuk dinilai sepenuhnya pada masa penyusunan, menghapuskan sebarang overhed yang dikaitkan dengan permulaan masa jalan . Ini boleh membawa kepada prestasi yang sedikit bertambah baik, tetapi ia biasanya tidak penting dalam amalan.
Pilihan antara const dan constexpr bergantung pada keperluan khusus anda:
Atas ialah kandungan terperinci `const` lwn. `constexpr` dalam C : Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!