C भाषा को extern पूर्ण गाइड | चल र कार्यहरू साझा गर्ने व्यावहारिक तरिका

1. extern के हो?

सी भाषामा extern भनेको, अन्य फाइलमा परिभाषित भेरिएबल वा फङ्क्शनलाई प्रयोग गर्नको लागि “अरूको चीज उधारो लिने” संकेत हो। उदाहरणका लागि, एउटा फाइलमा परिभाषित ग्लोबल भेरिएबललाई अर्को फाइलमा प्रयोग गर्न चाहँदा प्रयोग गरिन्छ। प्रोग्राम धेरै फाइलहरूमा विभाजित हुँदा, प्रत्येक फाइल बीच डेटा साझेदारी गर्नको लागि extern सक्रिय हुन्छ।

कृपया कल्पना गर्नुहोस्। प्रोग्रामभित्र धेरै कोठाहरू छन्, extern ले छिमेकी कोठाबाट उपकरण उधारो लिने “उधारो सम्झौता” जस्तै भूमिका खेल्छ। “यहाँ छैन, तर छिमेकी कोठामा छ” भन्ने अर्थ हो।

उदाहरण

// file1.c
int g_data = 100;

// file2.c
extern int g_data;
void printData() {
    printf("%dn", g_data);  // file1.c को g_data मा पहुँच
}

यस उदाहरणमा, g_data लाई file1.c मा परिभाषित गरिएको छ, तर extern प्रयोग गरेर file2.c बाट त्यो भेरिएबललाई पहुँच गरिन्छ।

2. extern र ग्लोबल भेरिएबलको सम्बन्ध

extern विशेष गरी ग्लोबल भेरिएबलसँग गहिरो सम्बन्ध छ। ग्लोबल भेरिएबलहरू, कार्यक्रमको सम्पूर्णमा एक पटक परिभाषित भएपछि, कुनै पनि फाइलबाट पहुँच गर्न सकिन्छ। तर, त्यसै अवस्थामा अन्य फाइलहरूले भेरिएबल कहाँ छ भन्ने थाहा पाउँदैनन्, त्यसैले extern प्रयोग गरेर “यहाँ छ!” भनेर बताउन आवश्यक छ।

ध्यान दिनुपर्ने कुरा भनेको, extern केवल घोषणा हो, त्यसैले मेमोरी आवंटन हुँदैन। भेरिएबलको मेमोरी आवंटन मूल फाइलमा गरिन्छ।

ग्लोबल भेरिएबलको उदाहरण

// file1.c
int counter = 0;

// file2.c
extern int counter;  // अन्य फाइलमा परिभाषित counter प्रयोग गर्नुहोस्
void incrementCounter() {
    counter++;  // counter को मान अपडेट गर्नुहोस्
}
年収訴求

3. Header file मा extern को उपयोग

ठूलो परियोजनामा, चल र कार्यलाई बारम्बार घोषणा गर्नु झन्झटिलो हुन्छ। यहाँ उपयोगी कुरा “हेडर फाइल” हो। हेडर फाइल भनेको अन्य फाइलहरूमा साझा गर्नको लागि जानकारीलाई एकै स्थानमा सङ्कलन गर्ने फाइल हो। यस हेडर फाइलमा extern घोषणा सङ्कलन गरेर, अन्य फाइलहरूले समान ग्लोबल चल वा कार्यलाई सन्दर्भ गर्न सक्ने बनाउँछ।

हेडर फाइललाई परियोजना सम्पूर्णको “टूलबक्स” पनि भन्न सकिन्छ। सामान्य उपकरणहरूलाई एकै स्थानमा जम्मा गरेर, आवश्यक फाइलहरूमा त्यो उपकरण प्रयोग गर्ने जस्तो छ।

हेडर फाइलको उदाहरण

// globals.h
extern int global_variable;
void printGlobalVariable();

// file1.c
#include "globals.h"
int global_variable = 10;

// file2.c
#include "globals.h"
void printGlobalVariable() {
    printf("%dn", global_variable);
}

4. सामान्य extern को त्रुटिहरू

extern को प्रयोग गर्दा केही ध्यान दिनुपर्ने बुँदाहरू छन्। उदाहरणका लागि, extern द्वारा घोषणा गरिएको चलमा प्रारम्भिक मान सेट गर्न सकिँदैन। extern केवल ‘घोषणा’ हो, ‘परिभाषा’ होइन। त्यसै गरी, चलको परिभाषा नभएको फाइलमा extern घोषणा गर्दा लिङ्क त्रुटि उत्पन्न हुन्छ।

सामान्य त्रुटिहरू

extern int data = 100;  // प्रारम्भ NG

उपरोक्त जस्तै, extern सँग चललाई प्रारम्भिक मान दिन प्रयास गर्दा त्रुटि उत्पन्न हुन्छ। extern अन्य फाइलहरूमा परिभाषित चललाई सन्दर्भ गर्नको लागि हो, चललाई परिभाषित वा प्रारम्भिक मान दिनको लागि होइन।

5. extern को प्रयोग गरेर व्यावहारिक प्रयोग उदाहरण

extern विशेष गरी ठूलो परियोजनाहरूमा सक्रिय हुन्छ। उदाहरणका लागि, धेरै मोड्युलहरूमा फैलिएको प्रोग्राममा, साझा डेटा र कार्यहरूलाई extern द्वारा घोषणा गरी, प्रत्येक फाइलमा पुन: प्रयोग गर्न सकिन्छ।

यस्ता परियोजनाहरूमा, extern प्रयोग गरेर प्रोग्रामको मोड्युलिकरण प्रगति हुन्छ, र मर्मतयोग्यता तथा पढ्नयोग्यता सुधारिन्छ। यसले प्रत्येक फाइललाई स्वतन्त्र रूपमा कार्य गर्नसक्ने बनाउँछ, साथै आवश्यक डेटा साझेदारी गर्न सकिन्छ।

व्यावहारिक उदाहरण

// main.c
#include "globals.h"

int main() {
    printGlobalVariable();  // अन्य फाइलमा परिभाषित गरिएको फङ्सनलाई कल गर्ने
    return 0;
}

// globals.c
#include "globals.h"
int global_variable = 100;

void printGlobalVariable() {
    printf("%dn", global_variable);  // ग्लोबल भेरिएबललाई प्रिन्ट गर्ने
}

यस लेखमा, extern को मूलभूतदेखि व्यावहारिक प्रयोगसम्म समेटिएको छ। C भाषामा प्रोग्रामको विभाजन र पुन: प्रयोगलाई प्रवर्द्धन गर्ने महत्वपूर्ण कुञ्जीशब्दको रूपमा, extern को भूमिका बुझ्न अत्यन्त महत्वपूर्ण छ।