Abilitare JavaScript per vedere questo sito.

Controlla se una variabile o una espressione ha cambiato il suo valore rispetto all'analisi precedente.

Sintassi

i32 diff (var)

var

Parametro da controllare.

Deve essere di tipo numerico (i8, i16, i32, u8, u16, u32, float, real) o booleano (espressione logica).

Risultato

Rende:

Valore

Descrizione

<> 0

La variabile ha cambiato valore rispetto all'analisi precedente.

0

Altrimenti.

Validità

Rule, Task.

Note

La prima volta che viene eseguita, la funzione rende FALSE e memorizza lo stato attuale della condizione.

Nel caso si utilizzi diff() in una funzione R3 utente, va evitato che i parametri della funzione stessa siano coinvolti nell'espressione di "condizione". Il risultato non sarebbe quello sperato a causa della sovrapposizione in memoria dello stato di più variabili.

Ogni istruzione di diff() ha la propria memoria dello stato della "condizione".

La valutazione del fronte è fatta tra lo stato attuale della condizione e la memoria relativa alla singola chiamata della funzione.

Per esempio, se abbiamo allo step 1000 if(diff(inp(1))) e allo step 1100 if(diff(inp(1))), benchè facciano riferimento alla stessa condizione, le valutazioni sono fatte in modo distinto, ognuna in base allo stato memorizzato, eseguendo step 1000 e poi step 1100.

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC