स्कोप के प्रकार
लोकल स्कोप
ब्लॉक के भीतर परिभाषित वेरिएबल्स केवल उसी ब्लॉक में विजिबल होते हैं, बाहर इनविजिबल।
ग्लोबल स्कोप
ब्लॉक के बाहर परिभाषित वेरिएबल्स प्रोग्राम के अंत तक विजिबल होते हैं।
उदाहरण: ग्लोबल वेरिएबल
#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उपयोग करें।