2013-02-15 8 views
6

Этот конкретный проект кода на C++ имеет маркеры байтов 0xFF, которые определяют определения функций префикса.Непечатаемый (0xFF) байт в исходном файле C++

Какова цель этого? Помогает ли вам простой простой синтаксический анализатор исходного файла?

Очевидно, компилятор игнорирует эти маркеры.

Strange character appearing in C source file

+3

Я уверен, что они не принадлежат там. –

+0

Возможно, он использует расширение компилятора, которое позволяет идентификаторам использовать больше, чем базовый набор символов источника? – PlasmaHH

+0

Вордс, моя ошибка. Это код на C++. – 2013-02-15 11:03:37

ответ

9

Это может быть Form Feed (ASCII 12) (on wiki-pedia), другими словами, символ пробела.

Символ подачи формы иногда используется в текстовых файлах исходного кода в качестве разделителя для разрыва страницы или в качестве маркера для разделов кода. Некоторые редакторы, в частности emacs, имеют встроенные команды для перехода вверх/вниз по символу подачи формы. Это соглашение преимущественно используется в коде Lisp и также рассматривается в исходном коде Python.

Это было распространено в источниках, когда исходный код обычно печатался на бумаге для обзора/архивирования.

печать будет интерпретировать FF в виде текстовых документов, как «разрыв страницы»

Semi релевантных: https://twitter.com/sehetw/status/297904888321544192

+0

Это хорошо работало с Fortran, где функция, состоящая только из 30 строк кода, исключая комментарии, считалась коротким. Может быть, слишком короткий! Это не так хорошо работает с C++, где у вас много очень коротких функций. –

+0

Спасибо sehe. Это должна быть причина! – 2013-02-15 11:09:44

+2

И чтобы быть абсолютно ясным: form-feed - это символ пробела, а также вертикальная вкладка и более общее пространство, вкладка и новая строка. – ecatmur

Смежные вопросы