2013-02-26 46 views
8

जब सी कोड को पढ़ने, मैं अक्सर बयान भर में इस तरह के रूप में आते हैं:फ़ंक्शन रिटर्न मानों के लिए 'आरसी` क्या है?

पूर्णांक rc = foo (बार, baz);
जोर दें (आरसी! = एनयूएलएल);

जहां चर rc समारोह की वापसी मान की जाँच के लिए प्रयोग किया जाता है। मुझे लगता है कि यह किसी प्रकार का निमोनिक है लेकिन इसका अर्थ कम नहीं कर सकता है।

मैं कोड की मेरी समझ में मदद करने के लिए इसका अर्थ जानना चाहता हूं।

+0

मी, मैं अनुमान लगा रहा हूं और अनुमान के बजाय परिवर्तनीय "परिणाम" नाम दे रहा हूं। – Lundin

+3

आपको कोड को समझने के लिए चर के नामकरण को समझने की आवश्यकता नहीं है। आपको यह समझने की आवश्यकता है कि फ़ंक्शन 'foo() 'क्या है, करता है, और इस कोड को समझने के लिए वापस आता है। कभी भी भरोसा न करें कि रिटर्न वैरिएबल का नाम क्या है यह समझाने के लिए कि कोड क्या करता है ... – Mike

उत्तर

9

मुझे लगता है कि यह "वापसी कोड" है। अधिकांशतः 0/NULL or 1 फॉर्म के पूर्णांक रिटर्न कोड को संदर्भित करने के लिए उपयोग किया जाता है।

3

मुझे "परिणाम कोड" का अनुमान लगाया जाएगा, लेकिन यह निश्चित रूप से अनुमान है।

+1

परिणाम कोड या वापसी कोड। – Joe

2

इसका अर्थ अक्सर "रिटर्न कोड" या "परिणाम कोड" होता है, हालांकि मूल रूप से इसका उद्देश्य लेखक के इरादे के आधार पर कुछ भी हो सकता है। नामकरण सम्मेलन के रूप में जाना, यह महान नहीं है। मेरा मतलब है, यह myVariable से बेहतर है, लेकिन पूरी तरह से नहीं।

मैं इस विचार की सदस्यता लेता हूं कि परिवर्तनीय नाम अर्थपूर्ण, और rc बहुत सार्थक नहीं है। यदि इसका अर्थ है "परिणाम कोड", तो मेरा प्रश्न "का परिणाम क्या है?" रिटर्न कोड नामित क्या करता है?

9

rc "rutabaga casserole" के लिए खड़ा है। क्या? आपको ऐसा नहीं लगता ?!

वैसे तथ्य यह है कि कोई भी यह नहीं कह सकता कि यह वास्तव में क्या है क्योंकि सी कोड में कोई अनिवार्य नाम नहीं है। यह उस समय "रिटर्न कोड" या "रिमोट कंट्रोल" या लेखक के सिर में जो कुछ भी था, उसके लिए खड़ा हो सकता था।

मैं इसे कोड

आपका तर्क स्वाभाविक त्रुटिपूर्ण की मेरी समझ के साथ मदद करने के लिए अर्थ है जानना चाहूंगा। यदि आप कोड को बेहतर समझना चाहते हैं, तो सुनिश्चित करें कि आप प्रयुक्त कार्यों के दस्तावेज़ और स्रोत को पढ़ते हैं, कभी भी भरोसा न करें कि कार्यों के नाम, या डेटा प्रकार वास्तव में कोड क्या कर रहे हैं में कोई प्राथमिकता उत्पन्न करते हैं।

वास्तव में, मुझे लगता है कि अपने तर्क, त्रुटिपूर्ण है माइक: टिप्पणी को संबोधित करने के


संपादित करें। यह कहना बेतुका है कि सामान्य रूप से उपयोग किए जाने वाले वेरिएबल नामों को जानना इस तथ्य के बावजूद कोड को समझने में आपकी सहायता नहीं करेगा कि उन्हें अनिवार्य नहीं है। उदाहरण के लिए, यह अच्छी तरह से जाना जाता है कि मुझे आमतौर पर सभी भाषाओं में एक लूप वृद्धि चर के रूप में उपयोग किया जाता है (लेकिन अनिवार्य नहीं)।

यह कहना उचित तर्क है कि वास्तव में वे चर नाम हैं जो लोग अनुसरण करते हैं। हम ret या rc एक वापसी मान या रिटर्न कोड के लिए दिखाई देगा, अक्सर हम एकल चर देखेंगे a, b, c, ..., i, j, k, ऑपरेटरों पाशन के लिए इस्तेमाल किया।हालांकि धारणा बनाने के बारे में एक नाम पर आधारित चर एक भयानक विचार है।
न केवल वैरिएबल के बारे में आपकी धारणा गलत हो सकती है (उदाहरण के लिए ओह के कानून फ़ंक्शन में एक साधारण i शायद वर्तमान का प्रतिनिधित्व करने के लिए चुना गया नाम हो सकता है, लूपिंग के साथ कुछ भी नहीं) लेकिन यह भी आपको समझ में आता है लेखक के लिए क्या समझ में नहीं आया।

उदाहरण के लिए, लेखक का एक चर int return_code है। आप मान सकते हैं कि यह फ़ंक्शन के रिटर्न कोड को घर पर जा रहा है, लेकिन हो सकता है कि नामक फ़ंक्शन के लौटे हुए मूल्य को में आप जिस फ़ंक्शन का मूल्यांकन कर रहे हैं और परिवर्तनीय int r इसके बदले रिटर्न कोड के लिए उपयोग किया जा सके।
मान लें कि आप चर count देख रहे हैं कि यह एक लूप इटरेटर, या कई फाइलों की गिनती होगी, या यह एक गिनती सेमफोर है?

तो, क्रिस रेडफ़ोर्ड, मुझे सम्मान से असहमत होना चाहिए। यह कहना बेतुका नहीं है कि सामान्य रूप से उपयोग किए जाने वाले परिवर्तनीय नामों को जानना कोड को समझने में मदद नहीं करेगा, क्योंकि यह कोड को पढ़ने से बेहतर नहीं होगा, और आपको एक भटकने वाले पथ का नेतृत्व कर सकता है जो आपको पता चल रहा है कि क्या हो रहा है जब आप वास्तव में नहीं करते हैं।
आप स्रोत कोड को समझते हैं आप return xxx; या for(int yyy=0; दिखाई देगा और आप उन चर क्या कर रहे हैं के बारे में मान्यताओं बनाने के लिए नहीं होगा, तो आप निश्चित रूप से पता कर देंगे, और कि केवल तरह से गारंटी के लिए आप जानते हैं क्या हो रहा है।

+0

बहुत अच्छा मुद्दा! – favoretti

+0

प्वाइंट लिया गया। केवल मैंने इसे विभिन्न लेखकों से कोड में देखा है, इसलिए मुझे लगता है कि यह किसी प्रकार का सम्मेलन है। इसके अलावा मुझे पता है कि कोड को और समझने योग्य बनाने के लिए सार्थक चर नामों का उपयोग करना अच्छा अभ्यास है। तो मुझे नहीं लगता कि _my_ तर्क त्रुटिपूर्ण है। – krm

+1

वास्तव में, मुझे लगता है कि आपका तर्क त्रुटिपूर्ण है, माइक। यह कहना बेतुका है कि सामान्य रूप से उपयोग किए जाने वाले वेरिएबल नामों को जानना इस तथ्य के बावजूद कोड को समझने में आपकी सहायता नहीं करेगा कि उन्हें अनिवार्य नहीं है। उदाहरण के लिए, यह अच्छी तरह से ज्ञात है कि 'i' आमतौर पर सभी भाषाओं में एक लूप वृद्धि चर के रूप में उपयोग किया जाता है (लेकिन अनिवार्य नहीं)। एक भाषा या एप्लिकेशन में 'i' के उपयोग को सीखने के बाद, आप आसानी से किसी अन्य भाषा या एप्लिकेशन में इसका उपयोग पहचान सकते हैं और कोड को और अधिक तेज़ी से समझ सकते हैं। –