Что такое компиляция? Компиляция — это процесс преобразования исходного кода в объектный код. Это делается с помощью компилятора. Компилятор проверяет исходный код на наличие синтаксических или структурных ошибок и, если исходный код не содержит ошибок, генерирует объектный код.

ССЗ:

Коллекция компиляторов GNU (GCC) — это оптимизирующий компилятор, созданный Проектом GNU, поддерживающий различные языки программирования, аппаратные архитектуры и операционные системы. . Фонд свободного программного обеспечения (FSF) распространяет GCC как свободное программное обеспечение в рамках Стандартной общественной лицензии GNU (GNU GPL). GCC является ключевым компонентом цепочки инструментов GNU и стандартным компилятором для большинства проектов, связанных с GNU и ядром Linux. В 2019 году GCC насчитывала примерно 15 миллионов строк кода и является одной из крупнейших существующих бесплатных программ. Он сыграл важную роль в развитии свободного программного обеспечения как инструмента и примера.

Препроцессор:

Препроцессор C не является частью компилятора, а представляет собой отдельный шаг в процессе компиляции. Проще говоря, препроцессор C — это просто инструмент подстановки текста, который указывает компилятору выполнить необходимую предварительную обработку перед фактической компиляцией. Мы будем называть препроцессор C CPP.

Все команды препроцессора начинаются с символа решетки (#). Это должен быть первый непустой символ, и для удобочитаемости директива препроцессора должна начинаться с первого столбца. В следующем разделе перечислены все важные директивы препроцессора —

директива #define

#define создает макрос, который является ассоциацией идентификатора или параметризованного идентификатора со строкой токена. После определения макроса компилятор может заменить строку маркера для каждого вхождения идентификатора в исходном файле.

Синтаксис:

#define идентификатор token-stringopt
#define идентификатор ( идентификаторopt,, идентификаторopt ) строка токенаopt

Ассемблер:

Ассемблер — это программа, которая преобразует код на языке ассемблера в машинный код. Он принимает основные команды компьютера и преобразует их в двоичный код, который процессор компьютера может использовать для выполнения своих основных операций. Эти инструкции написаны на языке ассемблера или языке ассемблера.

Мы также можем назвать ассемблер компилятором языка ассемблера. Это связано с тем, что компилятор преобразует язык высокого уровня в машинный язык. С другой стороны, ассемблер выполняет ту же задачу, но для языка ассемблера это имя компилятора языка ассемблера.

Компоновщик:

Как и препроцессор, компоновщик представляет собой отдельную программу, часто называемую ld (но в Linux, например, используется collect2). Как и препроцессор, компоновщик вызывается автоматически при использовании компилятора. Таким образом, обычный способ использования компоновщика выглядит следующим образом:

Эта строка указывает компилятору связать вместе три объектных файла (foo.o, bar.o и baz.o) в двоичный исполняемый файл с именем myprog. Теперь у вас есть файл с именем myprog, который вы можете запустить и который, надеюсь, сделает что-то классное и/или полезное.

Почему С?

Программы, которые вы пишете на C, компилируются и выполняются намного быстрее, чем программы, написанные на других языках. Это связано с тем, что в нем нет сборки мусора и других подобных дополнительных затрат на обработку. Следовательно, язык быстрее по сравнению с большинством других языков программирования.

ресурсы: