मैं एक समारोह है कि इस तरह दिखता है है कि कुछ कोड को देख रहा हूँ?सी ++ में (शून्य) का क्या अर्थ है?</p> <pre><code>void f(A* a, B& b, C* c) { (void)a; (void)b; (void)c; } </code></pre> <p>वास्तव में क्या हर पंक्ति की शुरुआत करते हैं (शून्य) करता है:
उत्तर
आपको क्या दिखाई वहाँ वास्तव में है सिर्फ एक नकली चर/पैरामीटर उपयोग को "चाल"।
उन पंक्तियों के बिना, एक पंडिताऊ संकलक चर नहीं किया जा रहा बारे में चेतावनी देने होंगे।
निर्माण का उपयोग (void)variablename;
का परिणाम कोई निर्देश उत्पन्न नहीं होगा, लेकिन संकलक इसे उन चर के वैध "उपयोग" पर विचार करेगा।
ठीक है, लेकिन फिर फ़ंक्शन का बिंदु क्या है? बेक्यूज यह सचमुच यह काम करता है सब कुछ करता है। –
यह तब एक स्टब हो सकता है ... संगतता के लिए बनाया गया .. मुख्य कोड कॉल 'f' कार्य करता है। Xyz आर्किटेक्चर कहने के लिए, यह परिभाषित किया गया है, abcd आर्किटेक्चर के लिए इसे दिखाए गए अनुसार दबाया गया है। – anishsane
@ जेस्पर एवरसनसन का कोई उपयोग नहीं है और एक अनुकूलन कंपाइलर पूरी तरह से इसे पूरी तरह से बाहर कर देगा (यानी इसके लिए कोई कोड उत्पन्न नहीं करता है)। यह शायद कुछ लागू करने या कुछ विरासत चीज़ के लिए प्लेसहोल्डर है। – Mario
जब भी हम सी ++ में एक समारोह लिख रहे हैं, हम, समारोह के प्रोटोटाइप का पालन करना यानी
प्रकार का नाम (parameter1, parameter2, ...) {} बयान
यहाँ type- प्रकार के लिए खड़ा है मूल्य यह
एक रिटर्न प्रकार का शून्य आपको उस फ़ंक्शन को परिभाषित करने की अनुमति देता है जो मूल्य वापस नहीं करता है। ध्यान दें कि यह 0 लौटने जैसा नहीं है। 0 का मान प्रकार पूर्णांक, फ्लोट, डबल, आदि है; यह एक शून्य नहीं है। (अन्य भाषाओं में, कोई रिटर्न वैल्यू वाले फ़ंक्शन को "सबराउटिन" या "प्रक्रिया" कहा जा सकता है, जबकि "फ़ंक्शन" हमेशा कुछ देता है। सी/सी ++ में, उन्हें सभी फ़ंक्शंस कहा जाता है।) लौटने का मतलब है कुछ भी नहीं ।
शून्य के लिए एक सूचक एक सामान्य सूचक है जिसका उपयोग तब किया जा सकता है जब स्थान पर डेटा का प्रकार अज्ञात हो। तो आप वास्तव में वहां मौजूद चीज़ों को जानने के बिना स्मृति में किसी पते को संदर्भित करने के लिए एक प्रकार का शून्य * का उपयोग कर सकते हैं।
ओपी यहां क्या नहीं पूछ रहा है। – anishsane
मुझे कम से कम दो पुनरावृत्ति दिखाई देती है। पहला यह संकलक की चेतावनियों से बचने के लिए है कि चर परिभाषित किया गया है लेकिन फ़ंक्शन के शरीर में उपयोग नहीं किया जाता है।
दूसरा यह है कि यह बहुत पुराना कोड है और कभी-कभी प्रोग्रामर अभिव्यक्ति के परिणाम का उपयोग नहीं होने पर अभिव्यक्ति से पहले रद्द करने के लिए कास्टिंग लिखते हैं। इससे संकलक को उत्पन्न ऑब्जेक्ट कोड अनुकूलित करने में मदद मिली।
दूसरा अनुच्छेद: यह बहुत पुराना कोड नहीं है। यहां तक कि सबसे हालिया कंपाइलर संस्करण (उदा। जीसीसी) शिकायत करेंगे यदि आप पैडेंटिक चेतावनियां सक्षम करते हैं और 'void' को कास्ट किए बिना कुछ कार्यों के रिटर्न कोड का उपयोग नहीं करते हैं। यद्यपि ईमानदार होने के बावजूद, दूसरा उपयोग ऊपर दिए गए कोड में मौजूद नहीं है, जो कि किसी भी पैरामीटर फ़ंक्शन पॉइंटर के मामले में एक भ्रामक कथन हो सकता है। – Mario
यह बस एक kludge संकलक चेतावनी से बचने के लिए है। उदाहरण के लिए, कि कोड जब जीसीसी -Wall -Wextra
साथ संकलित करता है, तो kludge नहीं किया जाता है उत्सर्जित करेगा
warning: unused parameter ‘a’ [-Wunused-parameter]
warning: unused parameter ‘b’ [-Wunused-parameter]
warning: unused parameter ‘c’ [-Wunused-parameter]
। हालांकि इसे हासिल करने के लिए क्लीनर दिखने के तरीके हैं। आप पैरामीटर नाम छोड़ सकता है:
void f(A*, B&, C*) {
}
एक जीसीसी-specifc और कुछ हद तक वर्बोज़ विकल्प प्रत्येक अप्रयुक्त पैरामीटर पर unused
विशेषता का उपयोग करने के लिए है:
void f(A* a __attribute__((unused)), B& b, C* c) {
}
लाइनों से छुटकारा पाने और चेतावनी से बचने का एक और तरीका, पैरामीटर से नाम हटा दें और सब ठीक है: 'शून्य एफ (ए *, बी और सी *) {} '<- शिकायत करने के लिए कोई चर नहीं। –
- 1. <C-C> और vim में <C-[> के बीच क्या अंतर है?
- 2. रूबी में "<< -" का अर्थ क्या है?
- 3. <: <, <% <, =: = कंपाइलर में काम का स्केल कार्यान्वयन वास्तव में कैसे करता है?
- 4. ऑटोमैपर: क्या नक्शा <A,B><B,A> देता है?
- 5. खाका समारोह प्रकार कटौती और ऑपरेटर << C++
- 6. "एक <= b && b <= a && a! = B" कैसे सच हो सकता है?
- 7. क्या <c-r> करता = विम
- 8. <% $, <% @, <% =, <% # ... सौदा क्या है?
- 9. << पायथन में क्या करता है?
- 10. SFINAE: 'static_cast <void>()' या ', शून्य()'?
- 11. का अर्थ << = और | =
- 12. "<<" and ">>" का अर्थ cout/cin के लिए C++ में क्या है?
- 13. एसबीटी में `<< =` का अर्थ क्या है?
- 14. Erlang howto इस द्विआधारी <<"a,b,c">>
- 15. {} में शून्य {{}) क्या है?</p> <pre><code>auto f() { return void({}); } int main() { f(); } </code></pre> <p>वास्तव में क्या <code>void({})</code> में <code>{}</code> है:
- 16. खोल में "<<(cmd args)" का अर्थ क्या है?
- 17. आप विम में <C-x><C-o> टाइप कैसे करते हैं?
- 18. रेल में "वर्ग << स्वयं" का अर्थ क्या है?
- 19. PHP क्या <<< मतलब है?
- 20. PHP में <<< ईओडी का उपयोग क्या है?
- 21. सार्वजनिक स्थिर <E> शून्य <E> शून्य
- 22. Django:</p> <pre><code>a = A() b = B() a.my_b = b b.save() a.save() </code></pre> <p>हैरानी की बात है <code>a</code><code>my_b</code> विदेशी कुंजी क्षेत्र में <code>null</code> साथ सहेजा गया है: पहले लक्ष्य मॉडल
- 23. <% "का अर्थ क्या है: <% = और <% = में क्या अंतर है?
- 24. UnsafeMutablePointer <Void>
- 25. स्कैला में "<:" का क्या अर्थ है?
- 26. वेक्टर <doubles> C++
- 27. स्ट्रिंग अक्षर जिसमें '\ 0' है - वे समान क्यों नहीं हैं?</p> <pre><code>char* a = "test"; char* b = "test"; char* c = "test\0"; </code></pre> <p>और अब सवाल:</p> <p>1) क्या यह है कि <code>a==b</code> गारंटी
- 28. cout << cout और cout << और cout में C++ के बीच क्या अंतर है?
- 29. <C-PageUp> और <C-PageDown> क्यों विम में काम नहीं करते?
- 30. पायथन में स्ट्रिंग्स की सूची से हिस्टोग्राम कैसे बनाएं?</p> <pre><code>a = ['a', 'a', 'a', 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'e', 'e', 'e', 'e', 'e'] </code></pre> <p>मैं पत्र की आवृत्ति वितरण प्रदर्शित करने के लिए एक हिस्टोग्राम बनाना चाहते:
क्योंकि चर अप्रयुक्त हैं, तो आप चेतावनी से बचना चाहते हैं । – Maroun
यह 'शून्य एफ (ए *, बी और, सी *) {} 'कहने का एक जटिल तरीका है। – juanchopanza
आपको अधिक संदर्भ देना चाहिए। सॉफ्टवेयर क्या है जहां यह कोड प्रकट होता है? –