Доп. вопросы и доп. материал к первому блоку вопросов.

📗 - Материал - Вопросы

📗Функция – абстракция над действиями; Типы данных(простые и составные) – абстракции над данными

📗 Модуль в языке С - пара файлов .c и .h

📗Все директивы, прототипы, функции, size для памяти и т.д., присутствующие в практическом вопросе помогут не расписывать теорию ( т.е. на практике сможем объяснять).

Для чего нужна директива?

Обычно используются для упрощения изменения исходных программ и компиляции в разных средах выполнения.

Что происходит с #include и #define после запуска программы?

Как работает директива препроцессора?

Двойные и кавычки уголком - различие?

<...> - подключение стандартных библиотек, заголовки, включенные в реализацию, "..." - подключение любых других.

Что значит подгружает файл? (Подкл заголовочный файл, убирает проблемы с двойной подстановкой)

📗Линковка – связывание файлов .о/.obj

Что происходит на этапе линковки? (Добавили хедер, далее…(компилятор однопроходный, бла бла)

объяснить, как всё связывается между собой (например сторонние библиотеки; как происходит реализация)

Динамическая и статическая линковка? (Объяснить как происходит добавление файлов(где он возьмет эти файлы сторонних библиотек))

На что влияет расширение у файла? (на обработку не влияет) – в случае с виндой: windows будет пытаться предложить как его обрабатывать

📗У файлов в разных ОС можно посмотреть Magic numbers - у файлов первые 3-4 цифры, хранящие информацию о типах файлов.

📗Прототипы (Формальные и фактические параметры(бонусный вопрос))

Чем отличается define от const

#define - это директива препроцессора, он просто выполняет замену строки текста на своё содержимое.

const - это квалификатор типа, говорящий, что переменная не должна меняться после инициализации. Но эта инициализация где-то должна произойти, и от константности можно вручную избавиться при помощи const_cast(С++).

const имеет тип данных и подставляется на этапе компиляции, а define не может иметь тип данных и выполняется на этапе препроцессинга.

📗После препроцессинга комментариев не будет, директив тоже. Комментарии удалятся, макросы вставятся, include подключит .h

Last updated