Envoyé par
gege2061
-ansi c'est la même chose que -std=c89 mais normalement il devrait te signaler une erreur
Peut être avec -Wall (voir -W) ?
Je n'ai pas d'exemplaire de la norme C90. Alors je vais citer le manuel de référence de K&R 2ème édition annexe A8.7:
Envoyé par
K&R2
L'initialisation:
Au moment de la déclaration d'un objet, son déclarateur-init peut spécifier une valeur initiale pour l'identificateur déclaré. L'initialisateur est précédé de =, et il est constitué soit d'une expression, soit d'une liste d'initialisateurs imbriqués entre accolade...
[EDIT]
Je n'obtient aucune erreur de compilation de ce micro-code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
/* Programme test.c: test validité de l'initialisation lors de
déclaration en C90 strict */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i = 0, j = 0, k = 0;
int x = 10;
char s_buffer[50] = {0};
/* Pour éviter le Warning: unused variable */
x = i + j + k;
(void) s_buffer[0];
printf("FIN du test!\n");
return EXIT_SUCCESS;
} |
en compilant avec gcc comme je le fais d'habitude:
gcc -Wall -Wextra -Werror -ansi -pedantic -Wwrite-strings -Wstrict-prototypes -Wmain test.c
[/EDIT]
Thierry
Partager