Son zamanlarda bu programlama deyimiyle karşılaştım:
const float Zero = 0.0;
daha sonra karşılaştırmalarda kullanılır:
if (x > Zero) {..}
Herkes bunun gerçekten daha verimli veya okunabilir veya bakımı kolay olup olmadığını açıklayabilir:
if (x > 0.0) {..}
NOT: Bu sabiti tanımlamak için başka nedenler düşünebilirim, sadece bu bağlamda kullanımını merak ediyorum .
x
türü vardır float
, o x > 0.0
terfi zorlar double
az verimli olması olabilir. Bu senin sabitleri (örneğin doğru tip Sadece emin olmak için, adlandırılmış sabit olsa kullanmak için iyi bir neden değil 0f
, float(0)
ya da decltype(x)(0)
).
13.37
değil . Yani eğer bir istedik o zaman akla senin öğretmen doğruydu. Bazı bağlamlarda (örn. Bir kayan noktaya atama) örtük olarak istediğiniz şeye dönüştürülecektir ve diğer bağlamlarda (örneğin şablon türü kesinti) olmayacaktır, her zaman amaçladığınız tür olarak başlar. Bu nedenle, daha güvenli. Dikkat et, öyle olur ! Ancak makrodan kaçınmanın "tip güvenlik" ten başka nedenleri de vardır, bu nedenle öğretmen size kötü bir argüman veriyor olabilir. float
double
float
13.37
float
static const float
13.37f