J'ai de nouveau déclaré une variable globale après la fonction principale, mais elle affecte toujours la fonction principale. Je sais que le langage C permet de déclarer à nouveau une variable globale lorsque la première déclaration n'initialise pas la variable (cela ne fonctionnera pas en C++). Si j'assigne la valeur après la fonction principale, cela fonctionne toujours avec deux avertissements en c mais donne une erreur en c++.
J'ai débogué le code mais il n'atteint jamais la ligne int a=10;
.
#include <stdio.h>
#include <string.h>
int a;
int main()
{
printf("%d",a);
return 0;
}
/*a=10 works fine with following warnings in c.
warning: data definition has no type or storage class
warning: type defaults to 'int' in declaration of 'a' [-Wimplicit-int]|
but c++ gives the following error
error: 'a' does not name a type|
*/
int a=10;
Le résultat est le suivant 10
.