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

C भाषा में एक्सटर्न स्टोरेज क्लास क्या है?

C प्रोग्रामिंग भाषा में चार स्टोरेज क्लास हैं:

  • auto
  • extern
  • static
  • register

ग्लोबल/एक्सटर्नल वेरिएबल्स

कीवर्ड: extern। ये वेरिएबल्स ब्लॉक के बाहर घोषित होते हैं।

  • स्कोप - पूरे प्रोग्राम में उपलब्ध।
  • डिफ़ॉल्ट मान - शून्य (0)।

एल्गोरिदम

START
Step 1: एक्सटर्न वेरिएबल घोषित और आरंभ करें
Step 2: इंट वेरिएबल a=3 घोषित और आरंभ करें
Step 3: a प्रिंट करें
Step 4: फंक्शन कॉल करें
Step 5: कॉल्ड फंक्शन a प्रिंट करता है (एक्सटर्न वेरिएबल का मान लेता है)

उदाहरण 1: एक ही फाइल में एक्सटर्न

extern int a = 5;  // यह 'a' पूरे प्रोग्राम के लिए उपलब्ध है

int main() {
    int a = 3;  // यह 'a' केवल main में वैध है (लोकल)
    printf("%d ", a);  // प्रिंट: 3
    fun();
    return 0;
}

void fun() {
    printf("%d", a);  // प्रिंट: 5 (ग्लोबल एक्सटर्न)
}

आउटपुट

3 5

व्याख्या: main में लोकल a=3 ग्लोबल a=5 को छुपा देता है (शैडोइंग)। fun() में कोई लोकल a नहीं है, इसलिए यह ग्लोबल a=5 एक्सेस करता है।

उदाहरण 2: मल्टीपल फाइल्स में एक्सटर्न

External.h

extern int a = 14;
extern int b = 8;

externstorage.c

#include <stdio.h> 
#include "External.h"

int main() {
    int sub = a - b;
    printf("%d - %d = %d", a, b, sub);
    return 0;
}

आउटपुट

14 - 8 = 6

मुख्य बिंदु

  • extern अन्य फाइल्स में परिभाषित वेरिएबल/फंक्शन की घोषणा करता है (परिभाषा नहीं)।
  • यह लिंकर को बताता है: "यह वेरिएबल कहीं और परिभाषित है, उसका पता ढूंढो।"
  • एक फाइल में परिभाषा (int a = 10;), अन्य फाइल्स में घोषणा (extern int a;)।
  • फंक्शन के लिए भी उपयोग होता है: extern void myFunc(); (वैकल्पिक, फंक्शन डिफ़ॉल्ट रूप से extern होते हैं)।

सामान्य गलती

// File1.c
int x = 10;  // परिभाषा

// File2.c
extern int x = 20;  // गलत! यह पुनर्परिभाषा है
// सही: extern int x;  // केवल घोषणा

सारांश

स्टोरेज क्लासस्कोपलाइफटाइमडिफ़ॉल्ट मान
externग्लोबल (सभी फाइल्स)प्रोग्राम अवधि0
static (ग्लोबल)फाइल-लोकलप्रोग्राम अवधि0
  1. क्लाउड स्टोरेज क्या है? क्लाउड स्टोरेज क्या है?

    क्लाउड स्टोरेज, फ़ाइलों को ऑनलाइन (क्लाउड में) संग्रहीत करने की एक सेवा है। अपनी फ़ाइलों को स्थानीय हार्ड ड्राइव, एक्सटर्नल हार्ड ड्राइव या फ्लैश ड्राइव पर रखने के बजाय, आप उन्हें ऑनलाइन सहेज सकते हैं। क्लाउड स्टोरेज का उपयोग क्यों करें? क्लाउड स्टोरेज सेवाओं का उपयोग करने के कई कारण हैं। हो सकता ह

  1. - C++ में एक्सटर्न स्टोरेज क्लास

    एक्सटर्न स्टोरेज क्लास स्पेसिफायर आपको उन ऑब्जेक्ट्स को घोषित करने देता है जिनका उपयोग कई सोर्स फाइल्स द्वारा किया जा सकता है। एक एक्सटर्न डिक्लेरेशन करंट सोर्स फाइल के उत्तराधिकारी भाग द्वारा वर्णित वेरिएबल को उपयोग योग्य बनाता है। यह डिक्लेरेशन परिभाषा को प्रतिस्थापित नहीं करता है। डिक्लेरेशन का उ

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

    एक स्टोरेज क्लास C++ प्रोग्राम के भीतर वेरिएबल्स और/या फंक्शन्स के स्कोप (विजिबिलिटी) और लाइफ-टाइम को परिभाषित करता है। ये स्पेसिफायर्स उस प्रकार से पहले आते हैं जिसे वे संशोधित करते हैं। C++ प्रोग्राम में निम्नलिखित स्टोरेज क्लासेस उपयोग की जा सकती हैं: auto register static extern mutable C में,