Vai al contenuto

piccolo aiuto


Messaggi raccomandati

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

penso di aver capito, ma potresti farmi un esempio con dei numeri? :shock:

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

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

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

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

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

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

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...