View Single Post
Old 15-02-2005, 11:10   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
[C], errore del compilatore o cosa?

Ciao, stavo facendo un semplice esempio sui vettori di puntatori a funzione...il mio compilatore (mi pare djgcc per windows) non me lo compila e mi dà un errore..la cosa strana è che l'errore non è nel mio programma ma nel file di libreria incluso stdio.h

Eccovi il codice ed il messaggio di errore:

/ Dimostrazione di utilizzo di un puntatore a funzione */

#include <stdio.h>

void funzione1 (int);
void funzione2 (int);
void funzione3 (int);

int main(){

/* f è un vettore di 3 puntatori a funzioni che come argomento ricevono un intero e non restituiscono alcun valore */

void (*f[3])(int) = {funzione1, funzione2, funzione3};
int scelta;

printf("Inserire un numero da 0 a 2, 3 per terminare: ");
scanf("%d", &scelta);

while(scelta>=0 && scelta<3){
(*f[scelta])(scelta); // Invoca la funzione puntata dalla variabile scelta nel vettore e gli passa il valore della var
printf("Inserire un numero da 0 a 2, 3 per terminare: ");
scanf("%d", &scelta);
}

printf("Hai inseito 3 per terminare\n");
return 0;
}

void funzione1(int a){
printf("Hai inserito %d così è stata invocata funzione1\n", a);
}

void funzione2(int b){
printf("Hai inserito %d così è stata invocata funzione2\n", b);
}

void funzione3(int c){
printf("Hai inserito %d così è stata invocata funzione3\n", c);
}


E questo è l'errore:

D:\gcc\esempi3\vettpuntfunz.c:1: parse error before `/'
In file included from D:\gcc\esempi3\vettpuntfunz.c:3:
..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include\stdio.h:195: type specifier omitted for parameter
..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include\stdio.h:195: parse error before `)'
..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include\stdio.h:274: syntax error before `('
..\lib\gcc-lib\i386-mingw32\2.95.2\..\..\..\..\include\stdio.h:276: syntax error before `('
Failure

A voi funziona o vi dà lo stesso problema?dite che se cambio compilatore funziona?quale uso?

Grazie
Andrea
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso