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 .
xtürü vardır float, o x > 0.0terfi zorlar doubleaz 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.37değ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. floatdoublefloat13.37floatstatic const float13.37f