Bonjour à tous,
Je débute actuellement dans la programmation en C. J'ai quelques notions en programmation (je développe en Java et en C#) et j'utilise le logiciel Visual Studio 2010 (Beta 2 :p) pour l'écriture et la compilation de programmes C.
Je viens de me heurter à une légère incompréhension vis-à-vis de la déclaration de variables dans un bloc.
Voici le code, qui ne fait pas grand chose pour le moment :
Il fonctionne, pas de problème à ce niveau là. Par contre, cette version ci ne passe pas à la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> #include <stdlib.h> int main(int argc, char * argv[]) { int i; int *p; p = (int *) malloc(10 * sizeof(int)); for(i = 0; i < 10; i++) { } system("pause"); return 0; }
La seule chose qui a changé c'est la position de la déclaration de la variable i.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> #include <stdlib.h> int main(int argc, char * argv[]) { int *p; p = (int *) malloc(10 * sizeof(int)); int i; for(i = 0; i < 10; i++) { } system("pause"); return 0; }
Le compilateur retourne les erreurs suivantes :
Dès lors je me pose la question suivante : ai-je raté une propriété incroyable du langage C disant que toute variable doit être déclarée en début de bloc ou est-ce une propriété bizarre du compilateur C de Visual C++ ?Error 1 error C2143: syntax error : missing ';' before 'type' c:\users\nicolas\documents\visual studio 10\projects\cprog\cprog\program.c 9 1 CProg
Error 2 error C2065: 'i' : undeclared identifier c:\users\nicolas\documents\visual studio 10\projects\cprog\cprog\program.c 10 1 CProg
Error 3 error C2065: 'i' : undeclared identifier c:\users\nicolas\documents\visual studio 10\projects\cprog\cprog\program.c 10 1 CProg
Error 4 error C2065: 'i' : undeclared identifier c:\users\nicolas\documents\visual studio 10\projects\cprog\cprog\program.c 10 1 CProg
En vous remerciant d'avance et en vous souhaitant un agréable week-end,
Nicolas![]()
Partager