C Program to Redeclaration of global variable



We will understand how C and C++ behave differently in case we re-declare a global variable without initializing, redeclaring global variables with initialization, redeclaring global variables and initializing them twice. Also, we will repeat above combinations with local variables.

1. A) C program : Redeclaring Global variables with no initialization

#include <stdio.h> int var; int var; int main(){    printf("Var = %d",var);    return 0; }

Output

Var = 0

B) C++ program : Redeclaring Global variables with no initialization

#include <iostream> using namespace std; int var; int var; int main(){    cout<<"Var = "<<var;    return 0; }

Output

Compilation Error: int var; main.cpp:3:5: note: ‘int var’ previously declared here

Results:- C allows redeclaration of global variables without initialization. Value remains 0. C++ gives a Compilation error that the variable is redeclared.

2. A) C program : Redeclaring Local variables with no initializations

#include <stdio.h> #include <stdio.h> int main(){    int var;    int var;    printf("Var = %d",var);    return 0; }

Output

error: redeclaration of ‘var’ with no linkage

B) C++ program : Redeclaring Local variables with no initialization

#include <iostream> using namespace std; int main(){    int var;    int var;    cout<<"Var = "<<var;    return 0; }

Output

error: redeclaration of ‘int var’

Results:- Both C and C++ do not allow redeclaration of local variables with no initialization done. Both programs failed in compilation.

3. A) C program : Redeclaring Global variables with initialization

#include <stdio.h> int main(){    int var;    int var=10;    printf("Var = %d",var);    return 0; }

Output

Var = 10

B) C++ program : Redeclaring Global variables with initialization

#include <iostream> using namespace std; int var; int var=10; int main(){    cout<<"Var = "<<var;    return 0; }

Output

main.cpp:7:9: error: redeclaration of ‘int var’ int var;

Results:-C allows redeclaration of Global variable if it is uninitialized. C++ program fails during compilation.

4. A) C program : Redeclaring Global variables with initialization

#include <stdio.h> int var; int var=10; int main(){    printf("Var = %d",var);    return 0; }

Output

error: redeclaration of ‘var’ with no linkage

B) C++ program : Redeclaring Local variables with initialization

#include <iostream> using namespace std; int main(){    int var;    int var=10;    cout<<"Var = "<<var;    return 0; }

Output

error: redeclaration of ‘int var

Results:-Both C and C++ do not allow redeclaration of local variables even if it is uninitialized. Both programs failed in compilation

Updated on: 2021-11-03T05:22:57+05:30

728 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements