Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-07-2011, 22:21   #1
JTL
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!
JTL è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 08:50   #2
wingman87
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 19:03   #3
JTL
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
JTL è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 19:43   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Solo se hai bisogno di ottimizzazioni spinte, se possibile io preferisco sempre la leggibilità alle performance.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 22:19   #5
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Solo se hai bisogno di ottimizzazioni spinte, se possibile io preferisco sempre la leggibilità alle performance.
Il costo di dichiarare una variabile ad ogni chiamata ricorsiva sta solo in una diversa dimensione del record di attivazione. Allocare N byte o N+10 byte sullo stack ha lo stesso costo.
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.
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 11-07-2011, 22:57   #6
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2775
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Il costo di dichiarare una variabile ad ogni chiamata ricorsiva sta solo in una diversa dimensione del record di attivazione. Allocare N byte o N+10 byte sullo stack ha lo stesso costo.
(N+10)*n° chiamate ricorsive.
Quote:
Originariamente inviato da marco.r Guarda i messaggi
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.
Anche il passaggio di variabili comporta un costo di memoria. Bisogna sempre valutare sapendo quello che si sta facendo. Se si ha bisogno di aumentare le prestazioni bisogna sapere dove si può tagliare.
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.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
I 3 robot per le pulizie migliori del Pr...
Un anello d'oro al posto dei soldi: la n...
Quando l'IA sbaglia: Deloitte costretta ...
Fai da te: super sconti su Bosch, anche ...
Prime Day Amazon: Samsung Galaxy Watch8 ...
La nuova direttiva europea 'è un ...
Assassin's Creed Mirage: annunciata la d...
Lucid segna un nuovo record nel terzo tr...
MOVA V50 Ultra Complete è al migl...
Offerte Prime Day: riscaldamento smart a...
La Tesla più economica di sempre:...
X non funziona: disservizi e messaggi di...
OnePlus ufficializza OxygenOS 16: arrive...
Prime Day infuocato: smartphone top in s...
Tutti i migliori TV sotto i 500€ scontat...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:47.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v