Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्रामिंग में फंक्शन्स के स्कोप नियम

स्कोप के प्रकार

लोकल स्कोप

ब्लॉक के भीतर परिभाषित वेरिएबल्स केवल उसी ब्लॉक में विजिबल होते हैं, बाहर इनविजिबल।

ग्लोबल स्कोप

ब्लॉक के बाहर परिभाषित वेरिएबल्स प्रोग्राम के अंत तक विजिबल होते हैं।

उदाहरण: ग्लोबल वेरिएबल

#include <stdio.h>

int r = 50; // ग्लोबल एरिया

int main() {
    int p = 30; // लोकल टू main
    printf("p=%d, r=%d\n", p, r);
    fun();
    return 0;
}

void fun() {
    printf("r=%d\n", r); // ग्लोबल एक्सेसिबल
}

आउटपुट

p=30, r=50
r=50

फंक्शन्स से संबंधित स्कोप नियम

  • फंक्शन के भीतर घोषित वेरिएबल्स लोकल वेरिएबल्स कहलाते हैं।
  • ये केवल उसी फंक्शन में मौजूद होते हैं जो इन्हें बनाता है।
  • अन्य फंक्शन्स और main के लिए अज्ञात होते हैं।
  • फंक्शन पूरा होने पर लोकल वेरिएबल्स नष्ट हो जाते हैं।

उदाहरण: वैल्यू द्वारा स्वैप (लोकल स्कोप)

#include <stdio.h>

void swap(int a, int b);

int main() {
    int a = 10, b = 20;
    printf("Before swap: a=%d, b=%d\n", a, b);
    swap(a, b);
    printf("After swap: a=%d, b=%d\n", a, b); // अनचेंज्ड
    return 0;
}

void swap(int a, int b) {
    int c = a;
    a = b;
    b = c;
    // ये लोकल कॉपीज हैं, मूल प्रभावित नहीं
}

आउटपुट

Before swap: a=10, b=20
After swap: a=10, b=20

ग्लोबल वेरिएबल्स

फंक्शन के बाहर घोषित वेरिएबल्स ग्लोबल होते हैं। सभी फंक्शन्स द्वारा एक्सेसिबल।

उदाहरण: ग्लोबल स्वैप

#include <stdio.h>

int a = 10, b = 20; // ग्लोबल

void swap();

int main() {
    printf("Before swap: a=%d, b=%d\n", a, b);
    swap();
    printf("After swap: a=%d, b=%d\n", a, b);
    return 0;
}

void swap() {
    int c = a;
    a = b;
    b = c;
}

आउटपुट

Before swap: a=10, b=20
After swap: a=20, b=10

सर्वोत्तम प्रैक्टिस

  • ग्लोबल वेरिएबल्स न्यूनतम उपयोग करें (मेंटेनेबिलिटी, थ्रेड सेफ्टी)।
  • डेटा पास करने के लिए पैरामीटर्स और रिटर्न वैल्यूज उपयोग करें।
  • फाइल स्कोप के लिए static उपयोग करें।
  1. C प्रोग्रामिंग में फंक्शन्स की श्रेणियां C प्रोग्रामिंग में फंक्शन्स की श्रेणियां

    फंक्शन्स के चार वर्ग आर्गुमेंट्स और रिटर्न वैल्यू के आधार पर: बिना आर्गुमेंट्स, बिना रिटर्न वैल्यू बिना आर्गुमेंट्स, रिटर्न वैल्यू के साथ आर्गुमेंट्स के साथ, बिना रिटर्न वैल्यू आर्गुमेंट्स के साथ, रिटर्न वैल्यू के साथ 1. बिना आर्गुमेंट्स, बिना रिटर्न फंक्शन न इनपुट लेता है न आउटपुट देता है। void

  1. - C# में क्लास के मेंबर वेरिएबल्स क्या हैं?

    क्लास एक ब्लूप्रिंट है जिसमें C# में मेंबर वेरिएबल्स और फंक्शन्स होते हैं। यह ऑब्जेक्ट के व्यवहार का वर्णन करता है।मेंबर वेरिएबल्स क्या हैं, यह जानने के लिए क्लास का सिंटैक्स देखें:<एक्सेस स्पेसिफायर> class class_name {    // मेंबर वेरिएबल्स    <एक्सेस स्पेसिफायर> <

  1. - पायथन वेरिएबल्स के लिए बुनियादी स्कोपिंग नियम क्या हैं?

    मार्क लुट्ज़ की पुस्तक लर्निंग पायथन में, वे पायथन स्कोपिंग कैसे काम करती है यह याद रखने के लिए निम्न स्मरक सुझाते हैं: LEGB सबसे संकीर्ण स्कोप से सबसे व्यापक स्कोप तक: L का अर्थ है लोकल। यह फंक्शन्स के लोकल स्कोप में परिभाषित वेरिएबल्स को संदर्भित करता है। E का अर्थ है एनक्लोज़िंग। यह अन्य फंक्शन्