Advertisement
PlotnikovPhilipp

Untitled

Aug 22nd, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. Указывая вот так extern тип и id переменной; Мы говорим компилятору, что после сборки файлов, тут будет находится вот эта переменная -> компилятор не создает ошибку, но также мы это делаем для стадии компонвки
  2.  
  3. Также с прототипом функции. Мы говорим компилятору, что после сборки файлов, тут будет находится вот эта переменная -> компилятор не создает ошибку, но также мы это делаем для стадии компонвки
  4. файлов, то есть:
  5. 1 Сначала проходит препроцессинг, замена всех include на код, определения макросов, убирание комментариев и ненужных пробелов.
  6.  
  7. 2 Потом проходит компиляция, проверка синтаксиса, смысла, оптимизации кода.
  8.  
  9. 3 И проходит этап сборки(компоновки, линковки). По правилам все собирается(вставка нужного кода из других вспомогательных файлов(мы их не видим, они потом также удаляются)) в объектный код,
  10. который расположен в главном файле(то есть там где функция main). Сборщик пытается найти функции без тела, которые говорят, что значит есть реализация этой функции в другом файле и компоновщик пытается в других
  11. файлах найти нужный код, найдя его он его копирует, удаляет прототип этой функции в главном файле и на это место вставляет объектный скопированный код. Также он ищет слово extern у переменных, ищет объявление
  12. нужной переменной по файлам и найдя, он копирует этот объектный код, удаляет инструкцию со словом extern и на это место вставляет только что скопированный объектный код. После чего он заканчивает работу
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement