यहां हम देखेंगे कि C में वैश्विक चरों की पुन:घोषणा क्या है। क्या C इसका समर्थन करता है या नहीं। आइए इसके बारे में विचार प्राप्त करने के लिए निम्नलिखित कोड देखें।
उदाहरण
#include <stdio.h> int main(){ int a; int a = 50; printf("a is : %d\n", a); }
आउटपुट
[Error] redeclaration of 'a' with no linkage
इसलिए हम देख सकते हैं कि हम स्थानीय चरों को फिर से घोषित नहीं कर सकते। अब देखते हैं कि वैश्विक चरों के लिए आउटपुट क्या होगा।
उदाहरण
#include <stdio.h> int a; int a = 50; int main(){ printf("a is : %d\n", a); }
आउटपुट
a is : 50
तो वैश्विक चर इस मामले में कोई त्रुटि नहीं पैदा कर रहे हैं। अब देखते हैं कि पहली डिक्लेरेशन में एक वैल्यू है या नहीं, फिर इसे फिर से डिक्लेयर किया जा सकता है या नहीं?
उदाहरण
#include <stdio.h> int a = 10; int a = 50; int main(){ printf("a is : %d\n", a); }
आउटपुट
[Error] redefinition of 'a'
इसलिए हम देख सकते हैं कि हम केवल वैश्विक चरों को फिर से घोषित कर सकते हैं, जब वे प्रारंभ नहीं होते हैं।