Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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
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...

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
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.


Il mio blog: https://piero.dev
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?

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
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.


Il mio blog: https://piero.dev
PM Quote