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