Nous verrons comment C et C++ se comportent différemment lors de la redéclaration d'une variable globale sans initialisation, de la redéclaration d'une variable globale avec initialisation, de la redéclaration d'une variable globale et de son initialisation deux fois. De plus, nous répéterons la combinaison ci-dessus en utilisant des variables locales.
#include <stdio.h> int var; int var; int main(){ printf("Var = %d",var); return 0; }
Var = 0
#include <iostream> using namespace std; int var; int var; int main(){ cout<<"Var = "<<var; return 0; }
Compilation Error: int var; main.cpp:3:5: note: ‘int var’ previously declared here
Résultat :- C Autoriser la redéclaration des variables globales sans initialisation. La valeur est toujours 0. C++ donne une erreur de compilation indiquant que la variable a été redéclarée.
#include <stdio.h> #include <stdio.h> int main(){ int var; int var; printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var’
Résultat :- C Ni C++ ni C++ n'autorisent la redéclaration de variables locales sans initialisation. Les deux programmes ne parviennent pas à se compiler.
#include <stdio.h> int main(){ int var; int var=10; printf("Var = %d",var); return 0; }
Var = 10
#include <iostream> using namespace std; int var; int var=10; int main(){ cout<<"Var = "<<var; return 0; }
main.cpp:7:9: error: redeclaration of ‘int var’ int var;
Résultat : -C permet la redéclaration Variable globale non initialisée. La compilation du programme C++ a échoué.
#include <stdio.h> int var; int var=10; int main(){ printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var=10; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var
Résultat : - C et C++ La redéclaration d'une variable locale n'est pas autorisée, même si elle n'est pas initialisée. Les deux programmes n'ont pas réussi à compiler
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!