Redeclaration of global variable in C
Consider the below two programs:
int main()
{
int x;
int x = 5;
printf ( "%d" , x);
return 0;
}
|
Output in C:
redeclaration of ‘x’ with no linkage
int x;
int x = 5;
int main()
{
printf ( "%d" , x);
return 0;
}
|
Output in C:
5
In C, the first program fails in compilation, but second program works fine. In C++, both programs fail in compilation.
C allows a global variable to be declared again when first declaration doesn’t initialize the variable.
The below program fails in both C also as the global variable is initialized in first declaration itself.
int x = 5;
int x = 10;
int main()
{
printf ( "%d" , x);
return 0;
}
|
Output:
error: redefinition of ‘x’
This article is contributed Abhay Rathi.
Last Updated :
28 May, 2017
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...