Alhazred
22-08-2007, 15.53.55
Situazione 1:
...
BOOL LeggiDaFile(char *, request_msg); //dichiarazione prototipo
...
LeggiDaFile("input.txt", messaggio); // chiamata alla funzione
...
BOOL LeggiDaFile(char *input, request_msg messaggio) { //intestazione funzione
...
error C2081: 'request_msg' : name in formal parameter list illegal //riferito al prototipo
error C2115: 'function' : incompatible types // riferito alla chiamata alla funzione
warning C4024: 'LeggiDaFile' : different types for formal and actual parameter 2 // riferito alla chiamata alla funzione
warning C4028: formal parameter 2 different from declaration //riferito all'intestazione della funzione
Situazione 2:
...
BOOL LeggiDaFile(request_msg, char *); //dichiarazione prototipo
...
LeggiDaFile(messaggio, "input.txt") // chiamata alla funzione
...
BOOL LeggiDaFile(request_msg messaggio, char *input) { //intestazione funzione
...
error C2122: 'char *' : prototype parameter in name list illegal //riferito al prototipo
Le due situazioni differiscono solo nell'ordine in cui sono scritti i parametri, request_msg è un tipo di dato strutturato che ho definito io.
Perché solo cambiando l'ordine dei parametri ho errori in compilazione diversi? Come devo interpretare questi errori? Perché se passo solo char * o alternativamente request_msg viene compilato (anche se il prog non funziona perché ho bisogno di entrambi i dati per quella funzione), mentre se li passo entrambi no?
...
BOOL LeggiDaFile(char *, request_msg); //dichiarazione prototipo
...
LeggiDaFile("input.txt", messaggio); // chiamata alla funzione
...
BOOL LeggiDaFile(char *input, request_msg messaggio) { //intestazione funzione
...
error C2081: 'request_msg' : name in formal parameter list illegal //riferito al prototipo
error C2115: 'function' : incompatible types // riferito alla chiamata alla funzione
warning C4024: 'LeggiDaFile' : different types for formal and actual parameter 2 // riferito alla chiamata alla funzione
warning C4028: formal parameter 2 different from declaration //riferito all'intestazione della funzione
Situazione 2:
...
BOOL LeggiDaFile(request_msg, char *); //dichiarazione prototipo
...
LeggiDaFile(messaggio, "input.txt") // chiamata alla funzione
...
BOOL LeggiDaFile(request_msg messaggio, char *input) { //intestazione funzione
...
error C2122: 'char *' : prototype parameter in name list illegal //riferito al prototipo
Le due situazioni differiscono solo nell'ordine in cui sono scritti i parametri, request_msg è un tipo di dato strutturato che ho definito io.
Perché solo cambiando l'ordine dei parametri ho errori in compilazione diversi? Come devo interpretare questi errori? Perché se passo solo char * o alternativamente request_msg viene compilato (anche se il prog non funziona perché ho bisogno di entrambi i dati per quella funzione), mentre se li passo entrambi no?