मैं इस प्रोग्रामिंग मुहावरा हाल ही में आया हूँ:
const float Zero = 0.0;
जो तब तुलना में प्रयोग किया जाता है:
if (x > Zero) {..}
क्या कोई समझा सकता है कि क्या यह वास्तव में अधिक कुशल या पठनीय है या इसकी तुलना में बनाए रखने योग्य है:
if (x > 0.0) {..}
ध्यान दें: मैं इस निरंतरता को परिभाषित करने के अन्य कारणों के बारे में सोच सकता हूं , मैं इस संदर्भ में इसके उपयोग के बारे में सोच रहा हूं ।
x
प्रकार है float
, तो x > 0.0
पदोन्नति को मजबूर करता है double
, जो कम कुशल हो सकता है। नामांकित स्थिरांक का उपयोग करने के लिए यह एक अच्छा कारण नहीं है, बस यह सुनिश्चित करने के लिए कि आपके स्थिरांक का सही प्रकार है (उदाहरण के लिए 0f
, float(0)
या decltype(x)(0)
)।
13.37
ऐसा नहीं है float
, यह है double
। इसलिए यदि आप चाहते थे float
तो यह अनुमान है कि आपका ट्यूटर सही था। कुछ संदर्भों में (उदाहरण के लिए एक फ्लोट को असाइन करना) 13.37
को आप के इच्छित रूप में परिवर्तित कर दिया जाएगा float
, और अन्य संदर्भों (जैसे टेम्पलेट प्रकार में कटौती) में यह नहीं होगा, जबकि static const float
हमेशा आपके द्वारा इच्छित प्रकार के रूप में शुरू होता है। इसलिए, अधिक प्रकार-सुरक्षित। तुम मन, तो होगा 13.37f
! "टाइप-सेफ्टी" की तुलना में मैक्रो से बचने के अन्य कारण हैं, हालांकि, यह सिर्फ इस बात की संभावना है कि ट्यूटर आपको एक खराब तर्क दे रहा है।