2012-08-11 1 views
1

J'ai besoin de ce code pour que mon programme ait des couleurs. Mais il ne compilera pas si j'utilise -pedantic. Y a-t-il un moyen de contourner ceci? son BTWgcc - pedantic ne compile pas, ISO C90 interdit les déclarations mixtes et le code Comment y remédier?

 
gcc -pedantic MP1.c -o hahah 
MP1.c: In function `main': 
MP1.c:65: warning: ISO C90 forbids mixed declarations and code 
MP1.c:686:30: warning: (this will be reported only once per input file) 

ligne 65:

int originalAttrs = ConsoleInfo.wAttributes; 

Répondre

4

Déplacer déclaration de originalAttrs au sommet du champ dans lequel il est utilisé. L'erreur n'est pas liée à l'utilisation de ConsoleInfo.wAttributes mais à l'emplacement de la déclaration de originalAttrs. Sans voir tout le code, il est probablement quelque chose comme:

printf("hello\n"); /* For example. */ 
int originalAttrs = ConsoleInfo.wAttributes; 

Pour fixer:

int originalAttrs; 
printf("hello\n"); /* For example. */ 
originalAttrs = ConsoleInfo.wAttributes; 
0

Soit fixer le code de sorte qu'il est conforme à la norme C90 (comme hmjd's answer suggère), ou dire gcc utiliser une version plus récente de la norme.

C autorise les déclarations et les instructions mixtes en commençant par la norme C99.

Si vous utilisez

gcc -std=c99 -pedantic 

ou

gcc -std=c11 -pedantic 

il devrait fonctionner.

Questions connexes