pazkowski Inviato 22 Gennaio 2011 Segnala Condividi Inviato 22 Gennaio 2011 qualcuno mi sa spiegare dettagliatamente che significa questo codice? in particolare vorrei sapere che significa l'ultima riga. long Quadrato(int n) { return(long) n * n; } long (*pf)(int x); To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 23 Gennaio 2011 Autore Segnala Condividi Inviato 23 Gennaio 2011 nessuno può aiutarmi? To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 24 Gennaio 2011 Autore Segnala Condividi Inviato 24 Gennaio 2011 up To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
_Alby_85 Inviato 25 Gennaio 2011 Segnala Condividi Inviato 25 Gennaio 2011 L'ultima riga dichiara un puntatore a una funzione che riceve in argomento un intero e restituisce un long..ovvero alla funzione che viene definita nelle precedenti righe Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 25 Gennaio 2011 Autore Segnala Condividi Inviato 25 Gennaio 2011 come fa a puntare alla funzione se non viene specificato? To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
_Alby_85 Inviato 25 Gennaio 2011 Segnala Condividi Inviato 25 Gennaio 2011 Infatti non punta a nulla..viene solo dichiarato..ma teoricamente potrebbe puntare alla funzione sopra definita Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 26 Gennaio 2011 Autore Segnala Condividi Inviato 26 Gennaio 2011 penso di aver capito, ma potresti farmi un esempio con dei numeri? edit: correggimi se sbaglio! scrivere, una volta specificato che *pf punta alla funzione: risultato=Quadrato(n) oppure risultato=(*pf)(n) sarebbe la stessa cosa? To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
_Alby_85 Inviato 26 Gennaio 2011 Segnala Condividi Inviato 26 Gennaio 2011 Esattamente..una volta fatto puntare alla funzione voluta le due espressioni sono identiche. Nota che puoi anche fare a meno di dereferenziare il puntatore ogni volta.. Puoi anche dire semplicemente: pf=quadrato; long risultato=pf(n); Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 26 Gennaio 2011 Autore Segnala Condividi Inviato 26 Gennaio 2011 yuppie! ho capito!! però mi resta lo stesso dubbio che avevo prima con i puntatori a variabili: a che serve usare il puntatore al posto della funzione? To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
_Alby_85 Inviato 26 Gennaio 2011 Segnala Condividi Inviato 26 Gennaio 2011 Potrebbe tornarti utile usare un puntatore a funzione nel caso, per esempio, in cui tu abbia più funzioni (che abbiano lo stesso valore di ritorno e lo stesso tipo di argomenti) e l'utilizzo di una piuttosto che un'altra sia determinato da una condizione di cui inizialmente ignori lo stato. Per esempio poniamo che tu abbia delle funzioni per il calcolo dell'area del tipo: long Rettangolo(int, int); long Triangolo(int, int); Poniamo che tu a priori non sappia quale delle due funzioni ti servirà al momento dell'esecuzione, perchè vuoi, per esempio, lasciare all'utente la possibilità di scegliere da riga di comando l'area di quale figura geometrica calcolare. Allora puoi rendere flessibile il tuo codice ricorrendo ai puntatori: long (*pf)(int, int); if(argv[1]=='triangolo') pf=triangolo; if(argv[1]=='rettangolo') pf=rettangolo; In questo modo eviti di dover riscrivere due volte lo stesso codice per considerare i due casi.. Inoltre è richiesto di utilizzare puntatori a funzione nelle definizioni di funzioni che hanno altre funzioni come argomento. In questo caso infatti si usa una chiamata non per valore ma per indirizzo. Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 26 Gennaio 2011 Autore Segnala Condividi Inviato 26 Gennaio 2011 capito! in pratica i puntatori a funzione servono soprattutto per risparmiare codice! approfitto per farti un ultima domanda: cosa serve effettivamente per creare un piccolo programmino? intando un programmino che non sia però eseguibile in console, ma in una finestra, come un normale programma. la prima cosa che mi viene in mente, e che credo sia la più facile è una calcolatrice: cosa serve per programmarne una? To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
_Alby_85 Inviato 27 Gennaio 2011 Segnala Condividi Inviato 27 Gennaio 2011 Per farla senza capirci nulla direi che non ci voglia molto...con un po' di copia/incolla da qualche tutorial qua e là ce la si fa tranquillamente..se invece il proposito è quello di riuscire a sviluppare applicazioni con una certa logica e un certo livello di conoscenza allora il discorso inevitabilmente cambia. Prima di sviluppare applicazioni con interfacce grafiche che presuppongo già una certa familiarità con i paradigmi della programmazione orientata agli oggetti, è necessario studiarsi bene le regole di programmazione procedurale, inziando dalla riga di comando. Quindi io direi che prima sia necessario un po' di linguaggio C...poi sarà possibile avvicinarsi a linguaggi orientati agli oggetti come Objective-C (nel caso di applicazioni Mac o iPhone). Link al commento Condividi su altri siti Altre opzioni di condivisione...
pazkowski Inviato 27 Gennaio 2011 Autore Segnala Condividi Inviato 27 Gennaio 2011 eh si copiare è piuttosto inutile l'objective-c è molto diverso dal c e dal c++? e a che putno sono con il C? non mi prendere per un bambino impaziente, ma non vedo l'ora di creare qualcosa di mio del c ho imparato le istruzioni fondamentali, ho imparato qualcosa sulle funzioni, e sui puntatori, poi, ho studiato (non so come si chiamano) gli "operatori" #define #ifdef #endif ecc. qualcosa sui file, anche se devo vederli un po' meglio perchè non ci ho capito molto. To Alcohol! The cause of - And solution to - All life' s problems (Homer J. Simpson) Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.