"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > C/C ++ में अप्रयुक्त चर: क्यों और कैसे?

C/C ++ में अप्रयुक्त चर: क्यों और कैसे?

2025-02-06 पर पोस्ट किया गया
ब्राउज़ करें:272

] ऐसे अप्रयुक्त चर कई कारणों से होते हैं। इस पोस्ट में, हम कुछ सबसे आम कारणों को देखते हैं कि सी/सी कोड में अप्रयुक्त चर क्यों होते हैं। हम समीक्षा करते हैं कि अप्रयुक्त चर के बारे में संकलक को कैसे चेतावनी दी जाए, और विशिष्ट अप्रयुक्त चर के लिए चेतावनी को कैसे दबाया जाए।

Unused variables in C/C  : why and how? क्यों चर अप्रयुक्त हैं

कई कारण हैं कि अप्रयुक्त चर एक कोड आधार में क्यों रह सकते हैं। इसमे शामिल है:

] या तो चर की वास्तव में जरूरत नहीं है और इसे हटाया जा सकता है, या चर आवश्यक है, लेकिन हम इसे कुछ महत्वपूर्ण बिंदुओं पर उपयोग करना भूल गए हैं।

] चर जो कभी कोड के लिए महत्वपूर्ण थे, जैसे कि सहायक गणना के परिणाम, फिर पीछे छोड़ दिया जा सकता है, अप्रयुक्त।

    ] आप कोड की प्रत्याशा में चर घोषित कर सकते हैं जो अभी तक लिखा जाना बाकी है।
  1. ] एक मानक उदाहरण एक चर है जो केवल डिबग उद्देश्यों के लिए परिभाषित किया गया है। आपके कोड में कुछ फॉर्म हो सकता है

  2. ] const auto value_for_comparison_only = compute_same_value_differently (); assert (मान == value_for_comparison_only);
  3. ]

    कैसे अप्रयुक्त चर का पता लगाने के लिए ] उदाहरण के लिए, जीसीसी और क्लैंग में -वुन्यूस्ड -चर ध्वज है, जो अप्रयुक्त चर के बारे में चेतावनी देता है। ध्वज पहले से ही -wall चेतावनी विकल्प द्वारा निहित है, और इसे -wno -Unused -Variable के माध्यम से बंद किया जा सकता है।

    ] यह अप्रयुक्त चर के सभी उदाहरण होगा।
  4. अप्रयुक्त चर का पता लगाने के लिए कैसे: विशेषताएँ

    ] ऐसा करने का एक लोकप्रिय तरीका शून्य करने के लिए एक कास्ट है:

    ऑब्जेक्ट UNUSED_OBJECT; (शून्य) unused_object;
  5. ] ] हम स्पष्ट शब्दार्थ करना चाहते हैं कि यह शून्य-कास्ट एक अप्रयुक्त वस्तु को दर्शाता है। एक सामान्य तरीका एक मैक्रो को परिभाषित करने के माध्यम से है:
  6. #अप्रयुक्त (x) (शून्य) (x) को परिभाषित करें; // ... ऑब्जेक्ट UNUSED_OBJECT; अप्रयुक्त (unused_object); ] इसके अलावा, यदि हम अप्रयुक्त चर के कोड को शुद्ध करने का निर्णय लेते हैं, तो उन्हें खोजना बहुत आसान है।
    ] उदाहरण के लिए, क्लैंग और जीसीसी चर विशेषता __attribute __ ((अप्रयुक्त)) के लिए अनुमति देते हैं। C 17 [[शायद_UNUSED]] विशेषता का समर्थन करता है:

  7. ] // घोषणा के बाद रखा जाना चाहिए [[शायद_UNUSEND] // घोषणा से पहले रखा जाना चाहिए
] ] सी 17 से, विशेषताओं भाषा मानक का हिस्सा हैं। हालांकि, न केवल वर्तनी अलग है, बल्कि मानक और जीसीसी एक्सटेंशन इस बात से सहमत नहीं हैं कि विशेषता कहां रखें।
const auto value = compute_some_value();
const auto value_for_comparison_only = compute_same_value_differently();
assert( value == value_for_comparison_only );
उदाहरण के लिए, यह डिबग-केवल चर के लिए एक प्राकृतिक विशेषता है। विशुद्ध रूप से सौंदर्य संबंधी कारणों के लिए, मैं व्यक्तिगत रूप से एक मैक्रो #Define को परिभाषित करना पसंद करता हूं हो सकता है। ] यह

नहीं है शायद अप्रयुक्त

लेकिन

निश्चित रूप से कभी भी उपयोग नहीं किया गया है, और चर का उपयोग करने से अब एक चेतावनी होगी।

बेकार चीजें रखना

]

तुलनात्मक रूप से, अप्रयुक्त चर को एक अच्छी रणनीति पर टिप्पणी कर रहा है? हमेशा नहीं! ऐसे कारण हैं कि आप विकास कोड और डिबगिंग चरण में एक अप्रयुक्त चर क्यों रखेंगे। मान लीजिए कि चर का उपयोग कोड के एक पिछले संस्करण में किया गया था, शायद आपने अभी तक यह तय नहीं किया है कि क्या पुराने कोड को आश्रय दिया जाना चाहिए या फिर से एकीकृत किया जाना चाहिए; अर्थ: आप नहीं जानते कि क्या आपको फिर से अप्रयुक्त चर की आवश्यकता हो सकती है।

यह कोड रखने के लिए डिबगिंग उद्देश्यों के लिए सहायक हो सकता है

]

] यहां तक ​​कि अगर मूल रूप से डिबगिंग के लिए इरादा नहीं है, तो प्रोग्राम को इनिशियलाइज़ करना इस चर को उपयोगी करना मददगार होगा यदि आप कभी भी यह तय करते हैं कि आपको इसकी आवश्यकता है (फिर से)।


मुझे आशा है कि अप्रयुक्त चर के बारे में यह पोस्ट आपके लिए उपयोगी थी।

Object unused_object;
(void)unused_object;
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/martinlicht/unuse-variables-in-cc-why-and-how-4cm4 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3