Зміст курсу
Основи C
Основи C
Як запустити програму?
Щоб перетворити наш код у конкретні команди для процесора, нам потрібен компілятор.
Компілятор — це інструмент, який бере ваш написаний код і перетворює його в машинний код — по суті, серію 0 та 1 — тому що це мова, яку розуміє процесор комп'ютера. Важливо, що компілятор не виконує ваш код; він лише перекладає його.
Примітка
Компілятор обробляє код послідовно, зверху вниз.
Процес компіляції проходить через кілька етапів:
- Операція препроцесора. На цьому етапі обробляються всі директиви
#include
, що дозволяє включати зовнішні файли, бібліотеки та інші необхідні елементи. По суті, всі необхідні компоненти інтегруються у вашу програму; - Аналіз синтаксичних помилок. Якщо компілятор виявляє будь-які синтаксичні помилки у вашому коді, він зупиняє компіляцію, вказуючи на помилку для виправлення;
- Компіляція в виконуваний файл. Всі компоненти, пов'язані з вашою програмою, об'єднуються та перетворюються у виконуваний файл. Наприклад, на платформі Windows ці файли мають розширення ".exe" (виконуваний). Після компіляції ви можете запустити цей файл так само, як ви запускаєте комп'ютерну гру або додаток.
Примітка
Виконуваний файл — це просто серія інструкцій (машинний код) призначених для процесора. Для контексту, фраза
"Hello, c<>definity"
у машинному коді може виглядати як послідовність:01001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001
Не хвилюйтеся! Ця числова мова призначена для машин, а не для нас!
Помилка була навмисно включена, щоб показати, як працює компілятор.
Main
#include <stdio.h> int main() { printf("some text") // error line return 0; }
Помилки
Чому компілятор вказує на помилку на 2-му символі 7-го рядка, коли там немає нічого неправильного? Саме в цьому і полягає проблема. Компілятор очікує побачити крапку з комою ;
у цьому місці. Але чому він очікує крапку з комою саме там, а не відразу після printf("some text")
?
Main
#include <stdio.h> int main() { ;; ;;;;;; printf("C language moment\n");;; ;return 0; ;;; }
Компилятор поблажливий до зайвих крапок з комою, тому дозволить вам використовувати кілька ;
.
Дякуємо за ваш відгук!