Printf (): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
(Creata pagina con 'La funzione della libreria di C int printf(const char *format, ...) scrive su ''stdout'' gli argomenti stringa passati. Volendola utilizzare in Gambas, bisognerà dichiarar...') |
Nessun oggetto della modifica |
||
| Riga 26: | Riga 26: | ||
Print s | Print s | ||
'''End''' | |||
Si potrà, però, ottenere più velocemente il medesimo risultato ponendo un semplice ''Print'' dopo la funzione ''Printf'': | |||
'''Public''' Sub Button1_Click() | |||
p = printf("Prova funzione 'printf'") | |||
Print | |||
'''End''' | '''End''' | ||
Versione delle 17:27, 30 lug 2013
La funzione della libreria di C
int printf(const char *format, ...)
scrive su stdout gli argomenti stringa passati.
Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern printf(testo As String, ....) As Pointer
Per ottenere il risultato in console, bisognerà far ritornare dalla funzione una variabile di tipo puntatore e non di tipo stringa, altrimenti sarà sollevato un errore "Segmentation fault (11)" !
Semplice esempio uso in Gambas:
Private Extern printf(testo As String) As Pointer In "libc:6"
Public Sub Button1_Click()
Dim p As Pointer
Dim s As String
p = printf("Prova funzione 'printf'")
' Dereferenziamo il Puntatore per ottenere il testo:
s = String@(p)
Print s
End
Si potrà, però, ottenere più velocemente il medesimo risultato ponendo un semplice Print dopo la funzione Printf:
Public Sub Button1_Click()
p = printf("Prova funzione 'printf'")
Print
End