⭐Доп. вопросы и доп. материал к первому блоку вопросов.
📗 - Материал ❓ - Вопросы
📗Функция – абстракция над действиями; Типы данных(простые и составные) – абстракции над данными
📗 Модуль в языке С - пара файлов .c и .h
📗Все директивы, прототипы, функции, size для памяти и т.д., присутствующие в практическом вопросе помогут не расписывать теорию ( т.е. на практике сможем объяснять).
❓Для чего нужна директива?
Обычно используются для упрощения изменения исходных программ и компиляции в разных средах выполнения.
❓Что происходит с #include и #define после запуска программы?
❓Как работает директива препроцессора?
❓Двойные и кавычки уголком - различие?
<...> - подключение стандартных библиотек, заголовки, включенные в реализацию, "..." - подключение любых других.
❓Что значит подгружает файл? (Подкл заголовочный файл, убирает проблемы с двойной подстановкой)
📗Линковка – связывание файлов .о/.obj
❓Что происходит на этапе линковки? (Добавили хедер, далее…(компилятор однопроходный, бла бла)
❓ объяснить, как всё связывается между собой (например сторонние библиотеки; как происходит реализация)
❓Динамическая и статическая линковка? (Объяснить как происходит добавление файлов(где он возьмет эти файлы сторонних библиотек))
❓На что влияет расширение у файла? (на обработку не влияет) – в случае с виндой: windows будет пытаться предложить как его обрабатывать
📗У файлов в разных ОС можно посмотреть Magic numbers - у файлов первые 3-4 цифры, хранящие информацию о типах файлов.
📗Прототипы (Формальные и фактические параметры(бонусный вопрос))
❓Чем отличается define от const
#define
- это директива препроцессора, он просто выполняет замену строки текста на своё содержимое.
const
- это квалификатор типа, говорящий, что переменная не должна меняться после инициализации. Но эта инициализация где-то должна произойти, и от константности можно вручную избавиться при помощи const_cast(С++).
const
имеет тип данных и подставляется на этапе компиляции, а define
не может иметь тип данных и выполняется на этапе препроцессинга.
📗После препроцессинга комментариев не будет, директив тоже. Комментарии удалятся, макросы вставятся, include подключит .h
Last updated