Vous essayez de déclarer strategy
deux fois, c'est pourquoi vous êtes obtenir l'erreur ci-dessus. Les ouvrages suivants, sans se plaint (compilé avec gcc -ansi -pendantic -Wall
):
#include <stdio.h>
enum { RANDOM, IMMEDIATE, SEARCH } strategy = IMMEDIATE;
int main(int argc, char** argv){
printf("strategy: %d\n", strategy);
return 0;
}
Si, au lieu de ce qui précède, le deuxième ligne a été modifié pour la:
...
enum { RANDOM, IMMEDIATE, SEARCH } strategy;
strategy = IMMEDIATE;
...
depuis les mises en garde vous pouvez facilement voir votre erreur:
enums.c:5:1: warning: data definition has no type or storage class [enabled by default]
enums.c:5:1: warning: type defaults to ‘int' in declaration of ‘strategy' [-Wimplicit-int]
enums.c:5:1: error: conflicting types for ‘strategy'
enums.c:4:36: note: previous declaration of ‘strategy' was here
Ainsi, le compilateur a fallu strategy = IMMEDIATE
pour une déclaration d'une variable nommée strategy
avec le type par défaut int
, mais il y avait déjà une précédente déclaration d'une variable de ce nom.