खोज…


परिचय

टिप्पणियों का उपयोग कोड पढ़ने वाले व्यक्ति को कुछ इंगित करने के लिए किया जाता है। संकलक द्वारा टिप्पणियों को एक रिक्त की तरह माना जाता है और कोड के वास्तविक अर्थ में कुछ भी नहीं बदलता है। C में टिप्पणियों के लिए उपयोग किए जाने वाले दो वाक्यविन्यास हैं, मूल /* */ और थोड़ा नया // । कुछ दस्तावेज़ीकरण सिस्टम कोड के लिए दस्तावेज़ बनाने में मदद करने के लिए विशेष रूप से स्वरूपित टिप्पणियों का उपयोग करते हैं।

वाक्य - विन्यास

  • /*...*/
  • //... (C99 और बाद में केवल)

/ * * / सीमांकित टिप्पणियाँ

एक टिप्पणी एक आगे की स्लैश के साथ शुरू होती है जिसके तुरंत बाद एक तारांकन चिह्न ( /* ) होता है, और जैसे ही एक तारांकन तुरंत समाप्त होता है उसके बाद एक आगे स्लैश ( */ ) का सामना करना पड़ता है। इन चरित्र संयोजनों के बीच सब कुछ एक टिप्पणी है और संकलक द्वारा एक रिक्त (मूल रूप से अनदेखा) के रूप में माना जाता है।

/* this is a comment */

ऊपर टिप्पणी एकल पंक्ति टिप्पणी है। इस तरह की टिप्पणियाँ /* प्रकार कई पंक्तियों को फैला सकते हैं, जैसे:

/* this is a
multi-line
comment */

हालांकि यह कड़ाई से आवश्यक नहीं है, मल्टी-लाइन टिप्पणियों के साथ एक सामान्य शैली का सम्मेलन पहले के बाद की लाइनों पर अग्रणी रिक्त स्थान और तारांकन करना है, और /* और */ नई लाइनों पर, जैसे कि वे सभी लाइन अप करते हैं:

/* 
 * this is a
 * multi-line
 * comment
 */

अतिरिक्त तारांकन टिप्पणी पर कोई कार्यात्मक प्रभाव नहीं डालते हैं क्योंकि उनमें से कोई भी संबंधित संबंधित स्लैश नहीं है।

इन /* प्रकार की टिप्पणियों का उपयोग उनकी अपनी लाइन पर, एक कोड लाइन के अंत में, या कोड की लाइनों के भीतर भी किया जा सकता है:

/* this comment is on its own line */
if (x && y) { /*this comment is at the end of a line */
    if ((complexCondition1) /* this comment is within a line of code */
            && (complexCondition2)) {
        /* this comment is within an if, on its own line */
    }
}

टिप्पणियों को नेस्टेड नहीं किया जा सकता है। ऐसा इसलिए है क्योंकि किसी भी बाद के /* को टिप्पणी के भाग के रूप में नजरअंदाज कर दिया जाएगा और पहले */ पर टिप्पणी समाप्त कर दी जाएगी। निम्नलिखित उदाहरण में टिप्पणी काम नहीं करेगी :

/* outer comment, means this is ignored => /* attempted inner comment */ <= ends the comment, not this one => */

इस प्रकार की टिप्पणियों वाले कोड के ब्लॉक पर टिप्पणी करने के लिए, जिसे अन्यथा नेस्टेड किया जाएगा, नीचे दिए गए प्रीप्रोसेसर उदाहरण का उपयोग करके टिप्पणी देखें

// सीमांकित टिप्पणी

C99

C99 ने C ++ स्टाइल सिंगल-लाइन टिप्पणियों का उपयोग शुरू किया। इस प्रकार की टिप्पणी दो फ़ॉरवर्ड स्लैश से शुरू होती है और एक पंक्ति के अंत तक चलती है:

// this is a comment

इस प्रकार की टिप्पणी मल्टी-लाइन टिप्पणियों की अनुमति नहीं देती है, हालांकि एक के बाद एक कई एकल टिप्पणियों को जोड़कर एक टिप्पणी ब्लॉक करना संभव है:

// each of these lines are a single-line comment
// note how each must start with
// the double forward-slash

इस प्रकार की टिप्पणी का उपयोग अपनी लाइन पर या कोड लाइन के अंत में किया जा सकता है। हालाँकि, क्योंकि वे पंक्ति के अंत तक चलते हैं, इसलिए कोड कोड के भीतर उनका उपयोग नहीं किया जा सकता है

// this comment is on its own line
if (x && y) { // this comment is at the end of a line
    // this comment is within an if, on its own line
}

प्रीप्रोसेसर का उपयोग करके टिप्पणी करना

कोड के बड़े हिस्से को प्रीप्रोसेसर निर्देशों #if 0 और #endif का उपयोग करके "टिप्पणी" की जा सकती है। यह उपयोगी है जब कोड में बहु-पंक्ति टिप्पणियाँ होती हैं जो अन्यथा घोंसला नहीं बनाती।

#if 0 /* Starts the "comment", anything from here on is removed by preprocessor */ 

/* A large amount of code with multi-line comments */  
int foo()
{
    /* lots of code */
    ...

    /* ... some comment describing the if statement ... */
    if (someTest) {
        /* some more comments */
        return 1;
    }

    return 0;
}

#endif /* 0 */

/* code from here on is "uncommented" (included in compiled executable) */
... 

ट्रिग्राफ के कारण संभावित नुकसान

C99

// सीमांकित टिप्पणी लिखते समय, एक टाइपोग्राफिक त्रुटि करना संभव है जो उनके अपेक्षित संचालन को प्रभावित करता है। यदि एक प्रकार:

int x = 20;  // Why did I do this??/

/ अंत में एक टाइपो था लेकिन अब में व्याख्या की जाएगी \ । ऐसा इसलिए है क्योंकि ??/ एक ट्रिग्राफ बनाता है।

ट्रिक ??/ ट्रिग्राफ वास्तव में \ लिए एक लंबे समय तक अंकन है, जो लाइन निरंतरता प्रतीक है। इसका मतलब यह है कि संकलक को लगता है कि अगली पंक्ति वर्तमान लाइन की एक निरंतरता है, अर्थात, टिप्पणी की एक निरंतरता है, जो कि ऐसा नहीं हो सकता है जिसका इरादा है।

int foo = 20; // Start at 20 ??/
int bar = 0;

// The following will cause a compilation error (undeclared variable 'bar')
// because 'int bar = 0;' is part of the comment on the preceding line
bar += foo;


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow