AnonimoVeneziano
03-02-2004, 18:47
Ciao ,
sto scrivendo un programma cazzuto per imparare , è un semplice simulatore di computer , ma mi trovo con un problema (altrettanto cazzuto :D )
Allora , io volevo attuare "il principio del minimo privilegio" per scrivere sto programma , ossia quello di consentire il meno possibile in scrittura , per evitare errori logici infidi :)
Allora , io ho questo vettore qua :
int memory[100] = {0};
Che è un vettore normalissimo , ora io lo voglio passare alla funzione dump:
void dump(int, int, int, int, int, const int []);
e come vedete, dato che la funzione non ha necessità di modificare il vettore ho specificato che la funzione deve riceverlo come "const" , ma GCC mi da questi Warning alla compilazione :
bash-2.05b$ gcc -O0 -g simpletron.c -o simpletron
simpletron.c: In function `main':
simpletron.c:75: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:86: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:98: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:109: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:131: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:136: warning: passing arg 6 of `dump' makes pointer from integer without a cast
Praticamente mi dice che io sto passando a una funzione un vettore normale in un vettore "const" senza fare prima il cast , allora io mi dico , FACCIAMO STO CAST!! :D
Solo che ho provato a passare i dati alla funzione come :
dump(accumulator, instructionCounter, instructionRegister, operationCode, operand, (const) memory);
Ma probabilmente non funziona , perchè mi da i warning lo stesso :D
Come faccio a farli scomparire? (a parte settare il vettore della funzione come "non const" :D )
Grazie per l'aiuto al niubbo della programmazione :)
Ciao
sto scrivendo un programma cazzuto per imparare , è un semplice simulatore di computer , ma mi trovo con un problema (altrettanto cazzuto :D )
Allora , io volevo attuare "il principio del minimo privilegio" per scrivere sto programma , ossia quello di consentire il meno possibile in scrittura , per evitare errori logici infidi :)
Allora , io ho questo vettore qua :
int memory[100] = {0};
Che è un vettore normalissimo , ora io lo voglio passare alla funzione dump:
void dump(int, int, int, int, int, const int []);
e come vedete, dato che la funzione non ha necessità di modificare il vettore ho specificato che la funzione deve riceverlo come "const" , ma GCC mi da questi Warning alla compilazione :
bash-2.05b$ gcc -O0 -g simpletron.c -o simpletron
simpletron.c: In function `main':
simpletron.c:75: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:86: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:98: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:109: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:131: warning: passing arg 6 of `dump' makes pointer from integer without a cast
simpletron.c:136: warning: passing arg 6 of `dump' makes pointer from integer without a cast
Praticamente mi dice che io sto passando a una funzione un vettore normale in un vettore "const" senza fare prima il cast , allora io mi dico , FACCIAMO STO CAST!! :D
Solo che ho provato a passare i dati alla funzione come :
dump(accumulator, instructionCounter, instructionRegister, operationCode, operand, (const) memory);
Ma probabilmente non funziona , perchè mi da i warning lo stesso :D
Come faccio a farli scomparire? (a parte settare il vettore della funzione come "non const" :D )
Grazie per l'aiuto al niubbo della programmazione :)
Ciao