Differenze tra le versioni di "Conoscere in runtime il numero identificatore di un tipo di dato di una variabile presente nel codice"
Da Gambas-it.org - Wikipedia.
Riga 9: | Riga 9: | ||
<FONT Color=ray>' ''Trova il numero identificatore del tipo di dato della variabile:''</font> | <FONT Color=ray>' ''Trova il numero identificatore del tipo di dato della variabile:''</font> | ||
− | Print "Gambas datatype identifier: "; Byte@(p <B>- 8</b>) | + | Print "Gambas datatype identifier: "; Byte@(p <Font Color=#B22222><B>- 8</b></font>) |
End | End | ||
− | Se la | + | Se la variabile, di cui trovare il numero identificatore del tipo di dato, è una ''Struttura'', allora avremo: |
Public Struct Struttura | Public Struct Struttura | ||
b As Byte | b As Byte |
Versione delle 10:00, 5 apr 2023
Nel file dei sorgenti di Gambas "/home/[USER]/gambasdevel/main/share/gambas.h " è presenti - quasi all'inizio - l'elenco dei numeri identificatore dei tipi di dati (Gambas datatypes identifiers ), previsti da Gambas.
Per conoscere a quale numero identificatore di tipo di dato appartiene una variabile dichiarata nel codice, si dovrà ottenere l'indirizzo di memoria di tale variabile e sottrarre a questo 8 unità come segue:
Public Sub Main() Dim p As Pointer Dim id As Short ' Pone un variabile di tipo "Short" da verificare: p = VarPtr(id) ' Trova il numero identificatore del tipo di dato della variabile: Print "Gambas datatype identifier: "; Byte@(p - 8) End
Se la variabile, di cui trovare il numero identificatore del tipo di dato, è una Struttura, allora avremo:
Public Struct Struttura b As Byte c As Short End Struct Private id As Struct Struttura Public Sub Main() Dim p As Pointer p = VarPtr(id) Print "Gambas datatype identifier: "; Byte@(p - 8) End