Czy lepiej jest używać static const
varsa niż #define
preprocesora? A może zależy to od kontekstu?
Jakie są zalety / wady każdej metody?
#define
lub static const
(w przypadku ciągów), zależy od aspektu inicjalizacji (nie zostało wspomniane w odpowiedziach poniżej): jeśli stała jest używana tylko w obrębie konkretnej jednostki kompilacji, to idę z static const
, w przeciwnym razie używam #define
- unikaj fiasku inicjalizacji kolejności statycznej isocpp.org/wiki/faq/ctors#static-init-order
const
, constexpr
lub enum
jakakolwiek odmiana działa w twoim przypadku, to lepiej#define