मैं सिर्फ कोड की निम्न पंक्ति लिखा है:समुचित उपयोग
if (++(data_ptr->count) > threshold) { /*...*/ } // example 1
मेरे इरादे डेटा संरचना के भीतर count
चर बढ़ाने के लिए है कि data_ptr
अंक threshold
की तुलना करने से पहले, और कोड की यह पंक्ति काम करता है।
मैं बजाय तुलना करने से पहले data_ptr
बढ़ाने के लिए चाहते थे, तो मैं इस प्रश्न के लिखित है |:
if ((++data_ptr)->count > threshold) { /*...*/ } // example 2
जिज्ञासा से बाहर
, मैं भी कोड की इस पंक्ति की कोशिश की:
if (++data_ptr->count > threshold) { /*...*/ } // example 3
और पाया कि यह बिल्कुल पहले जैसा ही व्यवहार करता है।
पहला सवाल:क्यों 3 काम # 1 उदाहरण के रूप में ही होता है उदाहरण #? क्या यह ऑपरेटर की सटीकता का मामला है? मानक में कुछ? मुझे एक त्वरित परीक्षण कार्यक्रम लिखना पड़ा क्योंकि जवाब मेरे लिए स्पष्ट नहीं था।
दूसरा प्रश्न: क्या मुझे यह if
कथन अलग-अलग लिखना चाहिए? मैं पहले अपनी लाइन पर वृद्धि कर सकता हूं, और तो किसी भी संभावित भ्रम से बचने के लिए स्थिति का परीक्षण कर सकता हूं। क्या यह आवश्यक है, या पहले दो उदाहरण अपने आप पर पर्याप्त स्पष्ट हैं?
+1 संक्षिप्त। '' –