Differenze tra le versioni di "Printf ()"
Da Gambas-it.org - Wikipedia.
(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...') |
|||
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 16: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