Questa istruzione permette di inizializzare una variabile, generalmente di tipo indicizzato, assegnandole un valore specificato ripetuto per un determinato numero di volte.
Sintassi |
fill_mem (varDest, nEl, val) |
---|---|
varDest |
È la variabile che si vuole inizializzare. può essere una variabile locale oppure un registro intero, REAL o STRING. |
nEl |
È il numero di elementi da inizializzare, REAL o I32. Può essere anche un'espressione matematica. |
val |
È il valore utilizzato nella inizializzazione, REAL o I32. Può essere anche un'espressione matematica. |
Validità |
Rule, Task. |
Note |
Nel caso di registri, l'inizializzazione viene estesa ai registri successivi a quello indicato. Nel caso delle variabili locali, che avranno tipicamente almeno un indice, occorre fare attenzione a non tentare di inizializzare un numero di elementi superiore alla dimensione dichiarata della variabile stessa. In caso contrario si avrà un opportuno messaggio di errore in fase di esecuzione del programma. Questo controllo è eseguito solamente nel caso in cui var_dest sia una variabile locale. Il numero nEl non rappresenta un numero di byte, ma un numero di elementi; ad es. nel caso di variabili reali, se si specifica nEl = 5 verranno inizializzate cinque locazioni reali consecutive della variabile specificata (in totale 40 bytes). |
NOTA IMPORTANTE: nel caso di inizializzazione di registri interi o di variabili intere, val deve sempre essere uguale a zero.
Esempio con registri interi:
Esempio con array locale:
Esempio con stringa:
|