Funzioni

di Anonimizzato10172 il
4 risposte
#include <cstdlib>
#include <iostream>


using namespace std;

int main(int argc, char *argv[])
{
    int a,b,c;
    cout<<"Inserisci due numeri";
    cin>>a>>b>>c;
    cout<<"Il massimo e' :  "<<max (a,b,c) <<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
int max (int q ,int w , int e) {
    int h=q;
    if(w>q) {
            h=w;
            }
            if(e>q) {
                    h=e;
                    }
            return h;
            }
ragazzi mi dice errore in cout<<"Il massimo e' : "<<max (a,b,c) <<endl; mi sapreste dire il perchè?

4 Risposte

  • Manca il prototipo prima del main()
  • Scusate se rompo il prototipo cosa è di preciso ?
  • E' il modo in cui è dichiarata la funzione e serve al compilatore per confrontare se quello che dichiari poi lo sviluppi.
    Nel tuo caso il protipo è:
    
    int max (int q ,int w , int e);
    
    e deve essere presente *prima* del codice dove viene invocata la funzione. Se tu avessi messo prima lo sviluppo della funzione - max() - e poi il main(), il compilatore avrebbe saputo subito com'era fatta. Dal momento che - max()- l'hai sviluppata dopo il main(), il compilatore non dispone di questa informazione, quindi da errore. Per evitarlo, basta mettere il prototipo (senza lo sviluppo) prima del main().
    Se invece metti il prototipo, ma poi dimentichi lo sviluppo avrai un errore di link.
  • Grazie infatti era quello ... Proprio ieri sera sul un libro che stavo leggendo parlava di errori comuni come che non si dichiara i prototipi
Devi accedere o registrarti per scrivere nel forum
4 risposte