Rumah > pembangunan bahagian belakang > C++ > Fungsi atau Pemalar Constexpr: Bilakah Saya Perlu Menggunakan Yang Mana?

Fungsi atau Pemalar Constexpr: Bilakah Saya Perlu Menggunakan Yang Mana?

DDD
Lepaskan: 2024-12-05 10:31:09
asal
602 orang telah melayarinya

Constexpr Functions or Constants: When Should I Use Which?

Fungsi Constexpr lwn. Pemalar: Bila Perlu Menggunakan Yang Mana

Apabila menghadapi fungsi yang secara konsisten mengembalikan nilai yang sama, seperti "return 5, "Seseorang mungkin tertanya-tanya mengapa ciri sedemikian wujud dalam C 11 dan jika ia harus menggantikan pengisytiharan pemalar sebaliknya.

Fungsi Pemalar lwn. Constexpr

Pertimbangkan contoh pengendalian nilai malar berikut:

#define MEANING_OF_LIFE 42
const int MeaningOfLife = 42;
constexpr int MeaningOfLife() { return 42; }
Salin selepas log masuk

Secara tradisinya, seseorang hanya akan mengisytiharkan nilai yang tetap. Walau bagaimanapun, fungsi constexpr menawarkan kelebihan tertentu.

Apabila Fungsi Constexpr Berguna

Fungsi Constexpr bernilai apabila nilai yang dikembalikan memerlukan pengiraan yang lebih kompleks, seperti:

constexpr int MeaningOfLife(int a, int b) { return a * b; }
const int meaningOfLife = MeaningOfLife(6, 7);
Salin selepas log masuk

Ini membolehkan kod yang lebih mudah dibaca sambil masih memudahkan masa penyusunan penilaian.

Pengiraan Masa Kompilasi

Fungsi Constexpr membolehkan pengiraan masa kompilasi eksplisit pemalar, seperti yang dilihat dalam:

template<typename Type> constexpr Type max(Type a, Type b) { return a < b ? b : a; }
Salin selepas log masuk

Ini membolehkan untuk pengendalian nilai malar yang cekap.

Meningkatkan Kebolehbacaan

Untuk fungsi seperti DegreesToRadians, menggunakan fungsi constexpr meningkatkan kebolehbacaan, menjadikannya lebih jelas bahawa nilai sedang dikira pada masa penyusunan:

const float oneeighty = DegreesToRadians(180.0f);
Salin selepas log masuk

Kesimpulan

Sementara mengisytiharkan pemalar kekal sebagai amalan yang berharga, constexpr berfungsi menawarkan kelebihan apabila bekerja dengan nilai pemalar yang lebih kompleks atau boleh dibaca. Mereka memudahkan penilaian masa kompilasi dan meningkatkan kebolehselenggaraan kod. Untuk mendapatkan maklumat lanjut tentang topik ini, rujuk http://en.cppreference.com/w/cpp/language/constexpr.

Atas ialah kandungan terperinci Fungsi atau Pemalar Constexpr: Bilakah Saya Perlu Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan