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 8: | Riga 8: | ||
p = VarPtr(id) | p = VarPtr(id) | ||
− | <FONT Color= | + | <FONT Color=gray>' ''Trova il numero identificatore del tipo di dato della variabile:''</font> |
Print "Gambas datatype identifier: "; Byte@(p <Font Color=#B22222><B>- 8</b></font>) | Print "Gambas datatype identifier: "; Byte@(p <Font Color=#B22222><B>- 8</b></font>) | ||
Riga 18: | Riga 18: | ||
End Struct | End Struct | ||
− | Private id As Struct Struttura | + | Private id As Struct Struttura <FONT Color=gray>' ''Ovviamente si può usare anche la parola-chiave "New"''</font> |
Versione delle 10:02, 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 ' Ovviamente si può usare anche la parola-chiave "New" Public Sub Main() Dim p As Pointer p = VarPtr(id) Print "Gambas datatype identifier: "; Byte@(p - 8) End