Differenze tra le versioni di "Ottenere il puntatore di una variabile di tipo Struttura"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
E' possibile ottenere il ''Puntatore'' di una variabile di tipo ''Struttura'' (ossia una variabile di tipo ''Puntatore'' che ''punta'' all'indirizzo di memoria di una variabile di tipo ''Struttura'') mediante la funzione ''VarPtr( )'', la quale ritorna un ''Puntatore'' che punta alla variable contenuta in memoria: | E' possibile ottenere il ''Puntatore'' di una variabile di tipo ''Struttura'' (ossia una variabile di tipo ''Puntatore'' che ''punta'' all'indirizzo di memoria di una variabile di tipo ''Struttura'') mediante la funzione ''VarPtr( )'', la quale ritorna un ''Puntatore'' che punta alla variable contenuta in memoria: | ||
<FONT color=B22222>VarPtr</font>(Variabile_Struttura) As Pointer | <FONT color=B22222>VarPtr</font>(Variabile_Struttura) As Pointer | ||
+ | |||
+ | V'è da sottolineare che è assolutamente necessario che la variabile di tipo "Struttura" andrà dichiarata all'esterno delle routine, come ''globale'', e preceduta dalla parola chiave ''Struct'': | ||
+ | Private variabile_struttura As Struct Struttura_Principale | ||
Riga 13: | Riga 16: | ||
'''End''' Struct | '''End''' Struct | ||
− | '''Private''' vrSt As Struct Abcde | + | '''Private''' vrSt As <FONT color=B22222>Struct</font> Abcde |
Riga 36: | Riga 39: | ||
<FONT color=gray>' ''Creiamo il "Puntatore" alla variabile di tipo "Struttura":''</font> | <FONT color=gray>' ''Creiamo il "Puntatore" alla variabile di tipo "Struttura":''</font> | ||
− | p1 = VarPtr(vrSt) | + | p1 = <FONT color=B22222>VarPtr(</font>vrSt<FONT color=B22222>)</font> |
<FONT color=gray>' ' ' ' ' '</font> | <FONT color=gray>' ' ' ' ' '</font> |
Versione delle 21:02, 13 nov 2013
E' possibile ottenere il Puntatore di una variabile di tipo Struttura (ossia una variabile di tipo Puntatore che punta all'indirizzo di memoria di una variabile di tipo Struttura) mediante la funzione VarPtr( ), la quale ritorna un Puntatore che punta alla variable contenuta in memoria:
VarPtr(Variabile_Struttura) As Pointer
V'è da sottolineare che è assolutamente necessario che la variabile di tipo "Struttura" andrà dichiarata all'esterno delle routine, come globale, e preceduta dalla parola chiave Struct:
Private variabile_struttura As Struct Struttura_Principale
Esempio:
Public Struct abcde a As Byte b As Short c As Integer d As Long e As String End Struct Private vrSt As Struct Abcde Public Sub Main() Dim p1, p2 As Pointer Dim b As Byte Dim sr As Short Dim i As Integer Dim l As Long Dim t As Stream With vrSt .a = 9 .b = 999 .c = 999999 .d = 999999999 .e = "testo" End With ' Creiamo il "Puntatore" alla variabile di tipo "Struttura": p1 = VarPtr(vrSt) ' ' ' ' ' ' ' Ora ri-otteniamo i valori presenti nella "Struttura" ' dereferenziando con i "Memory-Stream" il "Puntatore" prima creato: t = Memory p1 For Read Read #t, b Print b Seek #t, 2 Read #t, sr Print sr Seek #t, 4 Read #t, i Print i Seek #t, 8 Read #t, l Print l Seek #t, 16 Read #t, p2 Print String@(p2) End