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=ray>' ''Trova il numero identificatore del tipo di dato della variabile:''</font>
+
  <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