J'ai déclaré une variable de cette façon :
int i = 0;
Je reçois l'avertissement :
La norme ISO C90 interdit les déclarations et les codes mixtes.
Comment puis-je le réparer ?
J'ai déclaré une variable de cette façon :
int i = 0;
Je reçois l'avertissement :
La norme ISO C90 interdit les déclarations et les codes mixtes.
Comment puis-je le réparer ?
Jusqu'à la norme C99, toutes les déclarations devaient être placées avant les instructions dans un bloc :
void foo()
{
int i, j;
double k;
char *c;
// code
if (c)
{
int m, n;
// more code
}
// etc.
}
C99 permettait de mélanger les déclarations et les instructions (comme C++). De nombreux compilateurs utilisent toujours C89 par défaut, et certains compilateurs (comme celui de Microsoft) ne supportent pas C99. du tout .
Vous devrez donc faire ce qui suit :
Déterminez si votre compilateur supporte C99 ou plus ; si c'est le cas, configurez-le pour qu'il compile C99 au lieu de C89 ;
Si votre compilateur ne prend pas en charge C99 ou les versions ultérieures, vous devrez soit trouver un compilateur différent qui hace ou réécrivez votre code de manière à ce que toutes les déclarations précèdent les instructions à l'intérieur du bloc.
Pour diagnostiquer ce qui déclenche vraiment l'erreur, je commencerais par essayer de supprimer = 0
Si l'erreur est déclenchée, il est fort probable que la déclaration se trouve après le code.
S'il n'y a pas d'erreur, cela peut être lié à une application de la norme C/des drapeaux de compilation OU ... quelque chose d'autre.
Dans tous les cas, déclarez la variable au début de la portée actuelle. Vous pourrez ensuite l'initialiser séparément. En effet, si cette variable mérite sa propre portée - délimitez sa définition par {}.
Si le PO pouvait clarifier le contexte, alors une réponse plus dirigée suivrait.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.