Bonjour,
En lisant compilant un code lu sur ce forum, j'ai été étonné que le code suivant compile sans erreur ni warning, et que la sortie en console soit correcte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> int a; int a; int main(void) { a = 10; printf("a = %d", a); return 0; }
Celui-ci non plus ne pose pas de problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> int a; int a=1; int main(void) { printf("a = %d", a); return 0; }
En revanche, celui-ci produit des erreurs :
Sortie de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> int a=1; int a=1; int main(void) { int b; int b; // ici, je m'y attendais printf("a = %d", a); return 0; }
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c|4|error: redefinition of 'a'|
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c|3|note: previous definition of 'a' was here|
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c||In function 'main'
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c|9|error: redeclaration of 'b' with no linkage|
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c|8|note: previous declaration of 'b' was here|
d:\Documents and Settings\pgradot\Mes documents\Tools SD\A voir\test.c|9|warning: unused variable 'b'|
||=== Build finished: 2 errors, 1 warnings ===|
Pourquoi est-ce que je n'ai pas d'erreur pour les variables globales avec les 2 premiers codes ? Je précise que je compile avec CodeBlocks sous XP avec -Wall et -Wextra.
Merci !![]()
Partager