Differenze tra le versioni di "Memcmp ()"
Da Gambas-it.org - Wikipedia.
(Una versione intermedia di uno stesso utente non è mostrata) | |||
Riga 4: | Riga 4: | ||
La funzione ritornerà il valore zero, se i dati contenuti dalle due aree di memoria sono uguali; altrimenti restituirà un valore negativo. | La funzione ritornerà il valore zero, se i dati contenuti dalle due aree di memoria sono uguali; altrimenti restituirà un valore negativo. | ||
+ | |||
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta: | ||
Riga 9: | Riga 10: | ||
Qualora le due aree di memoria contengono sono puntate da due variabili di tipo ''String'', allora i due parametri della funzione esterna potranno assumere il tipo di valore ''String'' . | Qualora le due aree di memoria contengono sono puntate da due variabili di tipo ''String'', allora i due parametri della funzione esterna potranno assumere il tipo di valore ''String'' . | ||
− | |||
Mostriamo di seguito un semplice esempio, nel quale si compareranno due variabili di tipo ''Stringa'': | Mostriamo di seguito un semplice esempio, nel quale si compareranno due variabili di tipo ''Stringa'': | ||
Riga 19: | Riga 19: | ||
− | + | Public Sub Main() | |
Dim s1, s2 As String | Dim s1, s2 As String | ||
Dim i As Integer | Dim i As Integer | ||
− | + | s1 = "Gambas è un linguaggio di programmazione" | |
− | + | s2 = "Gembas è un linguaggio di programmazione" | |
<FONT Color=gray>' ''Verifichiamo la corrispondenza fra i primi 6 caratteri contenuti dalle due variabili di tipo "String":''</font> | <FONT Color=gray>' ''Verifichiamo la corrispondenza fra i primi 6 caratteri contenuti dalle due variabili di tipo "String":''</font> | ||
− | + | i = <FONT color=#B22222>memcmp</font>(s1, s2, 6) | |
− | + | If i = 0 Then | |
− | + | Print "I primi sei caratteri contenuti dalle due variabili sono identici." | |
− | + | Else | |
− | + | Print "I primi sei caratteri contenuti dalle due variabili NON sono identici." | |
− | + | Endif | |
− | + | End | |
− | |||
Versione attuale delle 14:11, 13 giu 2024
La funzione
int memcmp(const void *__s1, const void *__s2, size_t __n)
compara i primi n bytes dell'area di memoria __1 e dell'area di memoria __s2.
La funzione ritornerà il valore zero, se i dati contenuti dalle due aree di memoria sono uguali; altrimenti restituirà un valore negativo.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché bisognerà dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern memcmp(__s1 As Pointer, __s2 As Pointer, __n As Long) As Integer In "libc:6"
Qualora le due aree di memoria contengono sono puntate da due variabili di tipo String, allora i due parametri della funzione esterna potranno assumere il tipo di valore String .
Mostriamo di seguito un semplice esempio, nel quale si compareranno due variabili di tipo Stringa:
Library "libc:6" ' int memcmp(const void *__s1, const void *__s2, size_t __n) ' Compare N bytes of S1 and S2. Private Extern memcmp(__s1 As String, __s2 As String, __n As Long) As Integer Public Sub Main() Dim s1, s2 As String Dim i As Integer s1 = "Gambas è un linguaggio di programmazione" s2 = "Gembas è un linguaggio di programmazione" ' Verifichiamo la corrispondenza fra i primi 6 caratteri contenuti dalle due variabili di tipo "String": i = memcmp(s1, s2, 6) If i = 0 Then Print "I primi sei caratteri contenuti dalle due variabili sono identici." Else Print "I primi sei caratteri contenuti dalle due variabili NON sono identici." Endif End