Domanda

Qual è il significato di #line nel C la lingua? Dove sarebbe essere usato?

È stato utile?

Soluzione

Si dice al compilatore dove la seguente riga in realtà è venuto da. Di solito è solo il preprocessore C che aggiunge questi, ad esempio, quando si include un file, esso dice al compilatore (che è fondamentalmente solo vedendo un flusso di dati) che stiamo guardando un file diverso.

Questo può sembrare strano, ma il preprocessore inserisce semplicemente il file di intestazione in cui si specifica la vostra include, e il compilatore funziona su tutta la faccenda (tutti i file di intestazione concatenati insieme al codice sorgente), è possibile controllare il risultato del preprocessore fase se si utilizza gcc con gcc -E myfile.c. Lì si noterà si aggiunge una direttiva #line ogni volta che si includono i file, e anche ogni volta che riduce la quantità di testo inviato al compilatore (ad esempio, una grande quantità di commenti può essere ridotto a un'unica direttiva #line, saltando avanti)

E 'utilizzato anche da altri programmi, come bisonti / yacc per dirvi che il problema (se c'è un problema di compilazione) è legato alla vostra regole-file alla riga specifica che il compilatore sarebbe altrimenti in grado di fare , come il bisonte / yacc genera c-file.

Altri suggerimenti

Si chiama il controllo di linea preprocessore direttiva .

Le espansioni di entrambi __FILE__ e __LINE__ sono alterati se si utilizza una direttiva #line. Essa provoca il compilatore per il numero di riga della riga successiva di origine come il numero specificato.

Il suo utilizzo principale è quello di rendere il compilatore fornire messaggi di errore più significativi.

È possibile trovare maggiori spiegazioni ed un esempio di utilizzo in IBM documentazione .

Si tratta di una pragma parola chiave:

" #line consente di modificare il numero di riga del compilatore e (facoltativamente) l'output nome file per errori e avvisi. Questo esempio mostra come segnalare due avvertimenti associati a numeri di riga. Il #line 200 la direttiva obbliga il numero di riga per essere 200 (anche se l'impostazione predefinita è # 7) e fino al successivo direttiva #line, il nome del file verrà segnalato come "speciale". la direttiva #line predefinita restituisce la linea numerazione alla sua numerazione di default, che conta le linee che sono stati numerati nuovamente dalla direttiva precedente ".

E 'consente di modificare il numero di riga apparente del file.

L'unico uso mi viene in mente per esso è quello di rendere i numeri di riga sano di mente, dopo una lunga serie di macro multilinea.

utilizzo è:

#line 42

Viene usato principalmente per fornire i nomi dei file e numeri di linea di un file sorgente da cui un file C (sia esso intestazione o implementazione) è stato creato. Dato che, il compilatore emetterebbe diagnostica che suggeriscono il file di origine, piuttosto che il file generato.

preprocessori anche usare questo per suggerire le intestazioni inclusi in un file pre-elaborato che ha questi espansi.

# è la stringa injing simbolo al processore C e C ++

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top