Déclaration d'une variable dans un bloc
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 :
Code:
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;
} |
Il fonctionne, pas de problème à ce niveau là. Par contre, cette version ci ne passe pas à la compilation :
Code:
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;
} |
La seule chose qui a changé c'est la position de la déclaration de la variable i.
Le compilateur retourne les erreurs suivantes :
Citation:
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
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++ ?
En vous remerciant d'avance et en vous souhaitant un agréable week-end,
Nicolas :)