Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
#cc -Wall -o cmd-line cmd-line.c<br />
si provi a verificare l’output ottenuto invocando il programma appena generato. Per esempio, si<br />
otterrà:<br />
#./cmd-line<br />
Argomento 0 (1): ./cmd-line<br />
#./cmd-line arg1 arg2 arg3<br />
Argomento 0 (4): ./cmd-line<br />
Argomento 1 (4): arg1<br />
Argomento 2 (4): arg2<br />
Argomento 3 (4): arg3<br />
#./cmd-line arg1 arg2 arg3<br />
Argomento 0 (4): ./cmd-line<br />
Argomento 1 (4): arg1<br />
Argomento 2 (4): arg2<br />
Argomento 3 (4): arg3<br />
#./cmd-line "arg1 arg2 arg3"<br />
Argomento 0 (2): ./cmd-line<br />
Argomento 1 (2): arg1 arg2 arg3<br />
In particolare, si noti l’effetto (nullo) di spazi extra inseriti tra gli argomenti nel terzo esempio.<br />
Mentre l’effetto degli apici nel quarto esempio fa si che il programma ottenga un unico parametro<br />
inclusivo degli spazi.<br />
9.6 Numero variabile di parametri<br />
Si possono definire funzioni con numero variabile di argomenti (variadiche). L’esempio più comune<br />
di funzione variadica è printf con tutte le sue varianti. Definire la propria funzione<br />
variadica richiede una certa attenzione e conoscenza del meccanismo di passaggio dei parametri,<br />
e non verrà quindi trattato in questa sede.<br />
Chiamare una funzione variadica è invece molto frequente e basta specificare correttamente<br />
tutti gli argomenti. Nel caso dei derivati di printf, uno dei primi argomenti è una stringa che<br />
specifica il numero e il tipo degli argomenti successivi. La funzione variadica usa la stringa <strong>per</strong><br />
sa<strong>per</strong>e cosa sono gli argomenti ulteriori; data la standardizzazione del formato della stringa, il<br />
compilatore può controllare tutti gli argomenti passati e avvertire del possibile errore in caso di<br />
incongruenze. Per funzioni variadiche non assimilabili a printf il controllo del compilatore non<br />
è previsto.<br />
100