Sto leggendo "The C Preprocessor" che Guglielmo gentilmente ( e lo ringrazio ) mi ha passato.
Non riesco a capile Line Control!!
Qualcuno mi può' fare un esempio concreto sull'utilizzazione di #line ?
Credo che con l'IDE di Arduino nenache puoi usarla perché con gli #include fa come gli pare .... comunque prova a leggere QUI ... :
Guglielmo
P.S.: è una direttiva che NON ho mai usato in vita mia
Da quel ch io sappia si limita ad alterare il contenuto di FILE e LINE e credo il suo utilizzo serva solo se si utilizzano sistemi di creazione/manutenzione del codice che fondono vari file in un unico programma, con la direttiva si cambia linea e file in modo da permettere, in caso d'errore, di capire più facilmente dove intervenire.
Se ad esempio il main.c è
#include <stdio.h>
int main(void)
{
printf("Sono alla linea: %d; del file %s\n", __LINE__, __FILE__);
}
Verrà stampato Sono alla linea 4 del file main.c
ma se main.c è creato dalla fuzione di alri file diventerebbe difficile capire che l'istruzione in errore (nell'esempio rappresentata dalla printf) è in un determinato file ad una certa posizione, quindi facendo:
#include <stdio.h>
int main(void)
{
#line 70 "altro.c"
printf("Sono alla linea: %d; del file %s\n", __LINE__, __FILE__);
}
Verrà stampato Sono alla linea 71 del file altro.c
Uso limitatissimo insomma, almeno da quel che ho capito io
Verrà stam
Sono alla linea 4
Perché 4?
perché è la quarta partendo dall'inizio del file
Io conto 6! Oppure 5 partendo da 0 ??
LINE, FILE
Dove posso trovare la lista di queste variabili di sistema?
parte da uno e le righe vuote non contano, credo di ricordae così... non è che ho provato, pensavo si capisse cmunque il senso al di la di 3,4,5. Nel primo caso stampa un valore e un nome di file, con la direttiva stampa una linea che ovviamene non potebbe essere (70) di un file che si chiama differentemente