В одной библиотеке нашёл вот такое:
#define BODY
#include
И ведь наверняка где-то используется в виде #include BODYВ GNU C используется преобразование содержимого определения в лексемы и простая подстановка списка лексем по месту. Это означает, что #include должна уметь собирать имя файла из лексем. Второй вариант - мы храним строку определения
(
Read more... )
Comments 4
Считали строчку, разбили на пробелы и preprocessor tokens, подставили дефайны.
Если эта строчка #define, сохранили в список новый дефайн.
Если #include -- инклудим получившееся.
Если #if - включаем/выключаем обработку следующих строк.
А лексеру на вход идет уже результат.
Reply
Иначе нельзя показать сообщение с точностью до символа в строке.
К тому же, так быстрее получается.
Reply
Reply
Reply
Leave a comment