Директива #line
Директива #line изменяет содержимое __LINE__ и __FILE__, которые являются зарезервированными идентификаторами (макросами) в компиляторе. В первом из них содержится номер компилируемой в данный момент строки программного кода программы [3], а второй идентификатор – это строка, содержащая имя компилируемого исходного файла. Директива #line выглядит следующим образом: #line номер "имя_файла" В определении директивы #line обязательным является номер строки, относительно которой будет выполняться подсчет следующих строк. Второй параметр "имя_файла" является не обязательным. Если его не будет, то идентификатор __FILE__ будет содержать путь и имя программы. Если указать в качестве параметра новое имя файла, то __FILE__ будет содержать его. Директива #line в основном используется для отладки и специальных применений [3].
Операторы препроцессора # и ## Операторы # и ## применяются в сочетании с директивой #define [3], предусмотрены для работы препроцессора в некоторых особых случаях [3; 5]. Оператор #, который обычно называют оператором превращения в строку (stringize), трансформирует аргумент, перед которым стоит, в строку, заключенную в кавычки. Должен использоваться в макросах с аргументами, поскольку операнд после # ссылается на аргумент макроса [5]. Оператор ##, называемый оператором склеивания (pasting), или конкатенации, конкатенирует две лексемы. Операция ## должна иметь два операнда [5].
|