Funzioni

In Proteus esistono essenzialmente due tipi di funzioni: le funzioni di libreria e le funzioni definite dall'utente (UDF).
In questo manuale le funzioni di libreria sono classificate in categorie sulla base del loro impiego; esse costituiscono i 'mattoni' con cui l'utente può creare nuove funzioni e, in quanto tali, sono molto più veloci di qualunque funzione realizzata in Proteus per svolgere lo stesso compito.

Le UDF, d'altro canto, permettono di strutturare il codice e di riutilizzare le stesse funzioni in più programmi Proteus, realizzando delle proprie librerie.

Per quanto riguarda l'invocazione di funzioni, è indispensabile far seguire l'inizio di parentesi al nome della funzione, senza separare le due componenti con spazi, in questo modo:

; Corretto
STRDUP("string")
  
; Errato
STRDUP ("string") 

I parametri in Proteus possono essere passati in tre modi diversi: per valore, per riferimento implicito e per riferimento esplicito.

Il passaggio per valore è il più comune e non richiede particolari accorgimenti da parte dell'utente, essendo il metodo di passaggio predefinito.

Il passaggio per riferimento implicito si ottiene premettendo il carattere '@' ad ogni nome di variabile nella dichiarazione della UDF:

FUNCTION MyFunc(@var1, var2, @var3)

var1 e var3 sono passate per riferimento; var2 è passata per valore. Nel caso di passaggio per riferimento implicito, la funzione viene invocata come al solito, senza particolari accorgimenti; al termine dell'esecuzione della UDF, il valore dell'identificatore locale viene assegnato al rispettivo parametro, purché esso corrisponda ad un nome di variabile.

Il passaggio per riferimento esplicito, viceversa, non richiede particolari accorgimenti nella definizione della UDF, bensì richiede di premettere il carattere '@' ad ogni parametro che si vuole passare per riferimento nell'invocazione della funzione, ad esempio in questo modo:

CONSOLELN MyFunc(@var1, var2, @var3)

Il passaggio per riferimento implicito è consigliabile se i parametri con cui si invoca la UDF devono essere passati sempre per riferimento e quindi, per evitare di premettere molte volte il carattere '@', lo si indica una volta per tutte nella definizione della funzione; il passaggio per riferimento esplicito è utile se solo qualche volta i parametri sono passati per riferimento, ad esempio nel caso di funzioni di libreria.

Passaggio per valore, per riferimento implicito ed esplicito possono essere mescolati senza problemi nella definizione ed invocazione di una funzione.

Nel seguito di questo manuale, se una funzione di libreria ammette il passaggio per riferimento esplicito su alcuni parametri ciò sarà indicato premettendo al loro nome la sequenza di caratteri [@]; nessuna funzione di libreria presenta il passaggio per riferimento implicito. Nei parametri passati per riferimento all'interno delle funzioni di libreria viene sempre memorizzato il risultato della funzione, salvo diversamente indicato; se più di un parametro presenta il prefisso '@', il risultato viene memorizzato in ciascun parametro passato per riferimento.
Possono essere passati per riferimento solo gli identificatori ed il risultato della funzione PUB (cioè, ad esempio, INC(@PUB(N)) è corretta e comporta la memorizzazione nell'identificatore pubblico N del risultato della funzione); non possono essere passate per riferimento tutte le altre funzioni, le costanti stringa e numeriche.

Anche se non si utilizza il passaggio per riferimento, è possibile modificare il valore di una variabile esterna ad una UDF mediante l'impiego del metodo PSET (sebbene ciò sia considerato un side-effect e come tale non consigliato).

Alcune funzioni di libreria presentano un numero variabile di parametri; nella definizione sintattica i parametri opzionali sono racchiusi tra parentesi [quadre] e seguiti da due puntini di sospensione ("..").

Inizio pagina Prossimo argomento Argomento precedente Indice per argomenti Indice analitico
Midnight Lake iPhone Case Black Women Shoes Black Flat Shoes Leather Flats Black Patent Ballerinas Black Ballet Shoes Casual Shoes Black Shoes Women Balle Record Player Cufflinks Best iPhone XR Clear Cases iPhone XS/XS Max Leather Cases Sale Best iPhone 8/8 Plus Silicone Cases iPhone 7/7 Plus Cases & Screen Protector New Cases For iPhone 6/6 Plus iPhone 8 Case Sale iPhone Xr Case Online iPhone 7 Case UK Online iPhone X Case UK Sale iPhone X Case Deals iPhone Xs Case New Case For iPhone Xr UK Online Case For iPhone 8 UK Outlet Fashion Silver Cufflinks For Men Best Mens Cufflinks Outlet Online The Gold Cufflinks Shop Online Cheap Shirt Cufflinks On Sale Nice Wedding Cufflinks UK Online Top Black Cufflinks UK Online Mens Cufflinks Online Silver Cufflinks For Men Men Cufflinks UK Sale Gold Cufflinks UK Online Gold Cufflinks UK Silver Cufflinks UK Shirt Cufflinks Discount Online Mens Cufflinks Deals & Sales Girls Shoes For Dance Fashion Ballet Dance Shoes Best Ballet Flats Shoes UK Online Cheap Ballet Pointe Shoes UK Online Best Ballet Shoes Outlet Best Dance Shoes Sale Cheap Ballet Flats Sale UK Best Pointe Shoes Online UK Ballet Dance Shoes UK Shoes For Dance UK Best Ballet Slippers Shop Best Yoga Shoes Hotsell