Apakah lebih baik menggunakan static const
vars daripada #define
preprosesor? Atau mungkin itu tergantung pada konteksnya?
Apa kelebihan / kekurangan untuk setiap metode?
#define
atau static const
(untuk string) didorong oleh aspek inisialisasi (tidak disebutkan melalui jawaban di bawah): jika konstanta hanya digunakan dalam unit kompilasi tertentu saja, maka saya akan pergi dengan static const
, yang lain saya gunakan #define
- hindari kegagalan inisialisasi urutan statis. isocpp.org/wiki/faq/ctors#static-init-order
const
, constexpr
atau enum
variasi apa pun berfungsi dalam kasus Anda, maka pilih itu#define