|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2009
Messaggi: 83
|
[C] funzioni - passaggio argomenti o definizione?
Ho una domanda, forse troppo elementare ma sono un autodidatta...
sto scrivendo una funzione c che definisce una funzione matematica complicata, per la definzione mi servono delle variabile tipo int (per indici di sommatoria) e double. Conviene definirle dentro la funzione c, oppure definirla nel main e poi fare il passaggio di argomento? Qual è il vantaggio? Grazie! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
E' meglio definire le variabili all'interno delle funzioni se possibile, per leggibilità/ordine (sai che le variabili definite nella funzione sono utilizzate solo da essa e quindi non le utilizzerai erroneamente per altri scopi) e consumo di memoria (perché lo spazio per quelle variabili verrà allocato solo quando verrà richiamata la funzione).
Se si tratta di funzioni ricorsive il discorso sulla memoria potrebbe non essere vero. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2009
Messaggi: 83
|
Ok mi sembra chiaro, chiaro.
Per funzioni ricorsive intendi funzioni che vengono richiamate ricorsivamente, giusto? in quel caso conviene avere una variabile "pronta" per non dichiararla mille volte, giusto? Ciao ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Solo se hai bisogno di ottimizzazioni spinte, se possibile io preferisco sempre la leggibilità alle performance.
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Se il problema e' proprio nel costo in memoria, allora vale la pensa fare una fuzione esterna che allochi le variabili necessarie e poi le passi alla implementazione ricorsiva vera e propria.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele Ultima modifica di marco.r : 11-07-2011 alle 22:21. |
|
![]() |
![]() |
![]() |
#6 | ||
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2775
|
Quote:
Quote:
In verità io so queste cose ma non mi sono mai trovato a dover fare questo tipo di ottimizzazioni... Tu lavori sui microcontrollori, mi sembra di ricordare, quindi sicuramente ne sai più di me. |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:47.