2013-02-15 11 views
6

Questo particolare progetto di codice C++ ha marcatori di byte 0xFF che prefissano le definizioni di funzione.Byte non stampabili (0xFF) nel file sorgente C++

Qual è lo scopo di questo? Serve ad aiutare un semplice parser di file sorgente?

Apparentemente il compilatore ignora questi indicatori.

Strange character appearing in C source file

+3

Sono abbastanza sicuro che non ci appartengono. –

+0

Forse sta usando un'estensione del compilatore che consente agli identificatori di utilizzare più del set di caratteri di base dell'origine? – PlasmaHH

+0

Woops, mio ​​errore. È un codice C++. –

risposta

9

Questo potrebbe essere Form Feed (ASCII 12) (on wiki-pedia), in altre parole uno spazio bianco.

Il carattere di avanzamento è talvolta usato in file di testo del codice sorgente come delimitatore per un'interruzione di pagina, o come marcatore per le sezioni di codice. Alcuni editor, in particolare emacs, dispongono di comandi incorporati per eseguire la pagina su/giù sul carattere di avanzamento modulo. Questa convenzione è usata principalmente nel codice Lisp e si trova anche nel codice sorgente Python.

Un tempo era comune nelle fonti quando il codice sorgente veniva comunemente stampato su carta per revisione/archiviazione.

Stampe interpreteranno FF in documenti di testo come un 'interruzione di pagina'

Semi-rilevanti: https://twitter.com/sehetw/status/297904888321544192

+0

Questo ha funzionato bene con Fortran, dove una funzione che comprendeva solo 30 righe di codice, esclusi i commenti, era considerata breve. Forse troppo breve! Non funziona così bene con C++, dove hai molte funzioni molto brevi. –

+0

Grazie. Questa deve essere la ragione! –

+2

E per essere assolutamente chiari: il form-feed è un carattere di spaziatura, così come lo sono la tabulazione verticale e lo spazio più comune, tab e newline. – ecatmur

Problemi correlati