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

C भाषा में फंक्शन से संबंधित स्कोप नियम समझें

स्कोप नियम निम्नलिखित कारकों से संबंधित हैं:

  • वेरिएबल की पहुंच (accessibility)
  • वेरिएबल के अस्तित्व की अवधि
  • वेरिएबल के उपयोग की सीमा

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

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

उदाहरण 1: लोकल वेरिएबल्स (मान द्वारा पास)

#include <stdio.h> 

void swap(int a, int b);  // प्रोटोटाइप

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

void swap(int a, int b) {
    int c;
    c = a;
    a = b;
    b = c;
    // यहाँ a,b लोकल हैं, main के a,b अपरिवर्तित रहते हैं
}

आउटपुट

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

व्याख्या: swap फंक्शन को मान द्वारा पास किया गया है, इसलिए यह मूल वेरिएबल्स की कॉपी पर काम करता है।

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

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

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

#include <stdio.h> 

int a = 10, b = 20;  // ग्लोबल वेरिएबल्स

void swap();  // प्रोटोटाइप

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

void swap() {
    int c;
    c = a;
    a = b;
    b = c;
    // ग्लोबल a,b सीधे एक्सेस और मॉडिफाई होते हैं
}

आउटपुट

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

स्कोप नियम सारांश

वेरिएबल प्रकारघोषणा स्थानस्कोपलाइफटाइम
लोकलफंक्शन/ब्लॉक के अंदरकेवल उस ब्लॉक/फंक्शन मेंब्लॉक/फंक्शन निष्पादन तक
ग्लोबलसभी फंक्शन के बाहरपूरे प्रोग्राम में (सभी फाइल्स में extern के साथ)प्रोग्राम शुरू से अंत तक
स्टेटिक लोकलफंक्शन में static के साथकेवल उस फंक्शन मेंप्रोग्राम शुरू से अंत तक (मान बना रहता है)
फंक्शन पैरामीटरफंक्शन परिभाषा मेंकेवल उस फंक्शन मेंफंक्शन कॉल दौरान

बेस्ट प्रैक्टिस

  • ग्लोबल वेरिएबल्स का उपयोग कम से कम करें।
  • डेटा पास करने के लिए पैरामीटर्स और रिटर्न वैल्यू का उपयोग करें।
  • स्टेटिक लोकल वेरिएबल्स का उपयोग फंक्शन कॉल्स के बीच स्टेट बनाए रखने के लिए करें।
  1. C भाषा में कैरेक्टर ऑपरेशन्स को समझें C भाषा में कैरेक्टर ऑपरेशन्स को समझें

    C प्रोग्रामिंग भाषा में कैरेक्टर (A-Z या a-z), अंक (0-9), व्हाइट स्पेस, या विशेष प्रतीक हो सकते हैं। घोषणा (Declaration) C प्रोग्रामिंग में कैरेक्टर ऑपरेशन्स के लिए घोषणा निम्नलिखित है: char a = A; // कैरेक्टर कॉन्स्टेंट का उपयोग करके कैरेक्टर इनपुट/आउटपुट फंक्शन्स कैरेक्टर इनपुट/आउटपुट फंक्शन्स

  1. C भाषा में यूनियन टू पॉइंटर (Union to Pointer) C भाषा में यूनियन टू पॉइंटर (Union to Pointer)

    यूनियन (Union) क्या है? यूनियन एक यूजर-डिफाइंड डेटा प्रकार है जो एक ही मेमोरी स्थान को विभिन्न डेटा प्रकारों के सदस्यों के लिए साझा करने की अनुमति देता है। किसी भी समय केवल एक सदस्य ही मान रख सकता है। यूनियन की घोषणा union यूनियन_नाम { डेटा_प्रकार सदस्य1; डेटा_प्रकार सदस्य2; // ... };

  1. C भाषा में पॉइंटर एक्सेस करने की अवधारणा C भाषा में पॉइंटर एक्सेस करने की अवधारणा

    पॉइंटर घोषणा, प्रारंभिकरण और एक्सेस 1. सामान्य चर int qty = 179; // मेमोरी में: पता 1000 पर मान 179 संग्रहीत 2. पॉइंटर घोषणा int *p; // p एक पॉइंटर चर है जो int का पता रख सकता है 3. पॉइंटर प्रारंभिकरण int qty = 175; int *p; p = &qty; // एड्रेस-ऑफ ऑपरेटर (&) से पता प्राप्त करें मेमोरी आर