Презентация Препроцессор языка Си. Лекция 25 онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Препроцессор языка Си. Лекция 25 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 20 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Препроцессор языка Си. Лекция 25



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    20 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    67.25 kB
  • Просмотров:
    100
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
препроцессор языка си лекция
Содержание слайда: препроцессор языка си лекция 25

№2 слайд
План лекции Препроцессор как
Содержание слайда: План лекции Препроцессор как часть компилятора Этапы работы и внутреннее устройство препроцессора Язык препроцессора языка Си Алгоритм работы препроцессора языка Си Примеры

№3 слайд
Общие сведения о языке Си
Содержание слайда: Общие сведения о языке Си Dennis Ritchie Язык для разработки ОС UNIX 1969-1973, Bell Laboratories, США Стандарты ANSI (С89) С99 – //, описание переменных не в начале блока, массивы переменной длины С11 – параллелизм, полиморфизм

№4 слайд
Лексика языка Си Программа на
Содержание слайда: Лексика языка Си Программа на Си -- одна или несколько единиц компиляции (файлов) Стадии работы компилятора Формирование лексем (в том числе работа препроцессора) Синтаксический анализ Семантический анализ Оптимизация Генерация кода

№5 слайд
Препроцессор языка Си
Содержание слайда: Препроцессор языка Си Препроцессор – это интерпретатор специального языка преобразования текстов Препроцессор языка Си – это часть компилятора, преобразующая содержимое единицы компиляции в последовательность лексем языка Си Препроцессор GNU С -- библиотека Этапы работы препроцессора языка Си Замена триграфов Склеивание строк Удаление комментариев Обработка директив

№6 слайд
Триграфы языка Си Триграфами
Содержание слайда: Триграфы языка Си Триграфами языка Си называются следующие последовательности символов, начинающиеся с ??

№7 слайд
Пример ?? include lt stdio.h
Содержание слайда: Пример ??=include <stdio.h> /* # */ int main(void) ??< /* { */ char n??(5??); /* [ и ] */ n??(4??) = '0' - (??-0 ??' 1 ??! 2); /* ~, ^ и| */ printf("%c??/n", n??(4??)); /* ??/ = \ */ return 0; ??>

№8 слайд
Склеивание строк, удаление
Содержание слайда: Склеивание строк, удаление комментариев Строка единицы компиляции, заканчивающаяся обратной наклонной чертой \, соединяется со следующей строкой Символы единицы компиляции, образующие комментарий на языке Си, не включаются в выходную последовательность лексем языка Си

№9 слайд
Пример Будет ли исполнена
Содержание слайда: Пример // Будет ли исполнена следующая строка????????????????/ a++; ??/ будет проинтерпретирован как '\' в конце строки и продлит комментарий на следующую строку a++ будет воспринято как комментарий

№10 слайд
Директивы препроцессора Си
Содержание слайда: Директивы препроцессора Си Директивы препроцессора языка Си записываются на специальном языке Грамматика языка препроцессора языка Си отличается от грамматики языка Си Строки единицы компиляции на языке препроцессора языка Си начинаются с символа # Все остальные строки единицы компиляции являются входными данными для препроцессора языка Си

№11 слайд
Внутреннее устройство
Содержание слайда: Внутреннее устройство препроцессора Вход -- последовательность байтов в строках единицы компиляции Выход -- последовательность лексем для компилятора Таблица макросов Состояние препроцессора изменяемое директивами препроцессора Идентификатор макроса и цепочка лексем «правая часть макроса», на которую препроцессор заменяет этот идентификатор в процессе раскрытия Заполняется по ходу работы препроцессора в соответствии с директивами

№12 слайд
Константы, макросы, операции
Содержание слайда: Константы, макросы, операции Константы Целые числа, символы, строки Записываются как соотв. константы в Си Макросы Записываются как идентификаторы в Си Предопределенные макросы __FILE__, __LINE__, __FUNCTION__, __TIME__ Арифметические, побитовые, логические операции Записываются как в языке Си Проверка наличия определения макроса defined имя_макроса

№13 слайд
Константные выражения
Содержание слайда: Константные выражения Константным выражением языка препроцессора языка Си называется выражение, построенное по правилам языка Си из скобок ( и ) и констант, макросов и операций языка препроцессора языка Си

№14 слайд
Ключевые слова препроцессора
Содержание слайда: Ключевые слова препроцессора Си define — определить макрос препроцессора undef — отменить текущее определение макроса include — вставить текст из указанного файла if — передать строки до соотв. elif/else/endif на компиляцию, если выражение истинно ifdef — то же, что if defined ifndef — то же, что if !defined else — передать строки до соотв. endif на компиляцию, если соотв. выражение ложно elif — то же, что else if endif — конец ветки условной компиляции line — сообщить компилятору указанные номер строки и имя файла вместо фактических error — завершить работу с ошибкой pragma — добавить в выходной поток лексем лексемы, зависящие от компилятора

№15 слайд
Препроцессор Си Пока входной
Содержание слайда: Препроцессор Си Пока входной поток байтов не пуст С = строка, полученная заменой триграфов, склейкой строк и удалением комментариев Если С начинается с #, то обработать директиву Иначе для каждой лексемы Л в С Если Л является макросом с определением Х, то положить во входной поток байтов "#undef Л <конец строки> Х #define Л Х <конец строки> " Включает обработку параметров макроса – след. слайд Иначе положить Л в выходной поток лексем

№16 слайд
Обработка директив define
Содержание слайда: Обработка директив #define макрос [ ( парам [, парам …] ) ] правая часть Добавить в таблицу макросов определение #undef макрос Удалить определение #if константное выражение текст 0 #else текст 1 #endif Добавить во входной поток байтов текст 0, если выражение истинно, или текст 1, если выражение ложно #error сообщение Завершить компиляцию с сообщением

№17 слайд
Обработка директив include lt
Содержание слайда: Обработка директив #include < байты > #include " байты " Заменить #include на текст из файла с таким именем Две формы отличаются набором директорий, в которых препроцессор ищет файл -- для < > дополнительно просматриваются директории с файлами заголовков, поставляемых вместе с ОС #include последовательность лексем Последовательность лексем должна раскрываться либо в < байты >, либо в " байты "

№18 слайд
Макросы с параметрами define
Содержание слайда: Макросы с параметрами #define M(a,b,…) nextM Добавить в таблицу макросов замену M(a,b,…) -> nextM Если раскрываем M(A,B,…), то a, b, и т.д. в nextM будет заменено на A, В, и т.д. a##b – объединить a и b в одну лексему #a – строковая константа, значением которой является a #define max(x,y) ((x)<(y)?(x):(y))

№19 слайд
Заключение Препроцессор как
Содержание слайда: Заключение Препроцессор как часть компилятора Этапы работы и внутреннее устройтсво препроцессора Язык препроцессора языка Си Алгоритм работы препроцессора языка Си Примеры

№20 слайд
Препроцессор Си if if lt
Содержание слайда: Препроцессор Си #if #if <условие1> <код1> #elif <условие2> <код2> #else <кодN> #endif Вычисляем условия по порядку Когда получаем истину, помещаем во входной поток блок кода до следующей директивы #elif и/или #else могут отсутствовать Можно вложенные #if

Скачать все slide презентации Препроцессор языка Си. Лекция 25 одним архивом: