Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - GCC non supporta l
Forum - C/C++ - GCC non supporta l

Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 12:58
Venerdì, 22/12/2006
Salve a tutti. Come ho già scritto in qualche altro post è da poco che stò studiando il C++ e stò utilizzando Eclipse 3.2 CDT con MinGW. E' possibile che GCC non supporti l'overloading delle funzioni? --> Ho scritto un file e viene generato il seguente errore:

error: conflicting types for 'beep'
error: previous declaration of 'beep' was here


Ecco il file...




#include <windows.h>
#include <stdio.h>


typedef struct _CaratteristicheSuono {
    int frequenza;
    int durata;
} CaratteristicheSuono, *CaratteristicheSuonoPtr;


void beep(CaratteristicheSuonoPtr);
void beep(LPVOID);


void beep(CaratteristicheSuonoPtr carSuonoPtr) {
    int freq = carSuonoPtr->frequenza;
    printf ("Frequenza suono: %dHz\n", freq);
    Beep(carSuonoPtr->frequenza, carSuonoPtr->durata);
}


void beep(LPVOID carSuono) {
    CaratteristicheSuonoPtr carSuonoPtr = (CaratteristicheSuonoPtr)carSuono;
    beep(carSuonoPtr);
}




Ho provato anche con funzioni + semplici tipo

int square(int x) {return x * x;}
double square(double y){return y * y;}

Ma il risultato è lo stesso. Non sò se può esservi d'aiuto comunque il comando gcc è invocato da Eclipse in questa maniera

gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"nomeFile.d"

Ultima modifica effettuata da robrock80 il 22/12/2006 alle 13:02


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nikipe_silver (Founder Member)
Expert


Messaggi: 339
Iscritto: 20/09/2005

Segnala al moderatore
Postato alle 15:06
Venerdì, 22/12/2006
il C non supporta l'overloading, perche' e' una specifica della programmazione ad oggetti,C++ quindi...


c'e' qualcosa in questa pizza che non mi quadra...
E' logico, e' tonda..E' facile se ci pensi..
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 5:41
Domenica, 24/12/2006
Più che altro non so se l'overloading è supportato per funzioni che non sono all'interno di una classe. La funzione beep è già definita in stdio.h, ma non è all'interno di nessuna classe, quindi non puoi overloadarla.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 14:49
Venerdì, 29/12/2006
Testo quotato

Postato originariamente da pierotofy:

Più che altro non so se l'overloading è supportato per funzioni che non sono all'interno di una classe. La funzione beep è già definita in stdio.h, ma non è all'interno di nessuna classe, quindi non puoi overloadarla.




... Ma non è key sensitive il C?


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 4:06
Sabato, 30/12/2006
Mi par di ricordare che il C sia case sensitive, ma in ogni caso la funzione beep è tutta scritta in minuscolo.


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote