Memcmp ()
Vai alla navigazione
Vai alla ricerca
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 = bcmp(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