Vai al contenuto
PLC Forum


Passare delle stringhe a una funzione


Simons

Messaggi consigliati

Salve a tutti... ho sviluppato un piccolo programma per scrivere su un LCD.

come posso costruire una funzione in modo che possa passargli 2 stringhe e 1 intero?

ho sviluppato questa funzione:

void visualizza(char titolo, char unita, long int valore)

{

printf(send_char,"%C",titolo);

printf(send_char,"\n%C",unita);

printf(send_char,"%lu",valore);

}

quando vado a passare i parametri in questo modo:

visualizza("Tempo","sec",25);

il compilatore mi dà errore sulla prima virgola "Bad Expression Syntax"...

come passo una stringa a una funzione?

grazie 1000 dell'aiuto smile.gif

Link al commento
Condividi su altri siti


ciao simons

devi usare il %s se gli argomenti sono stringhe

inoltre il %lu puoi formattarlo ad esempio

%07lu significa stampa il numero sempre su 7 cifre e se sono di meno riempi con zeri a sinistra

oooops forse la domanda era sui parametri di visualizza

in questo caso passi i puntatori char*

esempio char titolo[] = "bla bla"

la dichiari

visualizza (char* titolo, ....)

la chiamata diventa

visualizza (titolo, ...) ;

e comunque nel printf ci vuole %s

Modificato: da accacca
Link al commento
Condividi su altri siti

accacca+20/09/2007, 16:14--> (accacca @ 20/09/2007, 16:14)

Grazie!

ma ad esempio la stringa char titolo[] deve essre per forza dichiarata in precedenza?

e poi il nome del parametro deve essere uguale alla stringa dichiarata prima?

intendo il parametro visualizza(char *titolo) deve avere lo stesso nome di titolo[]="blablabla" ??

grazie ancora smile.gif

Link al commento
Condividi su altri siti

hai ragione non serve

puoi fare come hai scritto tu inserendo la stringa direttamente nella chiamata,

Anche nome dle parametro e nome dell'eventuale variabile possono essere completamente diversi.

La dichiarazione di una varibile anzichè scriverlo direttamente nel codice può essere utile per le modifiche (cambi lingua, modifichi i nomi....) cambi un solo posto senza cercare in tutto il codice

Link al commento
Condividi su altri siti

dunque ho fatto come mi hai detto:

ho dichiarato la funzione così:

void visualizza(char *titolo,char *um)

{

printf(send_char,"%S - %S",titolo,um);

}

Però quando vado a richiamarla in questo modo:

visualizza("Tempo","sec");

mi salta fuori il solito errore:

"Bad Expression Syntax -1 is not 0...255" e mi evidenzia la virgola tra "tempo" e "sec"

senzasperanza.gif

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...