Частина 14 - Привіт, світ!

Для повного змісту змісту всіх уроків, будь ласка, натисніть нижче, оскільки це надасть вам короткий зміст кожного уроку, а також теми, які будуть розглянуті.

Сьогодні ми починаємо наш шлях у світ C++ і здобуття краще розуміння того, як C++ взаємодіє зі своїм процесором ARM. Попередні уроки в цій серії зосереджені на основах процесора ARM і торкаються його архітектури та того, як усе в кінцевому підсумку перекладається на мову збірки та потім на машинний код. Ми починаємо з нашого першого програми в C++, яка є нашим “Привіт, світ!” програмою. Давайте підійдемо і розберемо кожну рядок крок за кроком і побачимо, як ця мова працює. Ми збережемо цей example1.cpp і збережемо його на нашому пристрої.

Для компіляції цього ми просто набираємо:

g++ example1.cpp -o example1

Далі ми просто набираємо:

./example1

УСПІШНО! Ми бачимо “Привіт, світ!” виведене на стандартний вивід або термінал! Давайте розберемо його рядок за рядком:

#include <iostream> відноситься до декларації попереднього обробника. Ці попередні обробники відбуваються лише перед компіляцією решти коду. Ключове слово #include знайде file називається iostream і візьме всі вміст цього file і скопіює його в існуючий код, який ми тільки створили. Ці файли також називаються файлами заголовків.

Ми call iostream тому що нам потрібна декларація функції називається cout і endl. Функція cout дозволяє нам виводити текст на стандартний вивід або термінал, а функція endl створює нову строку після того, як текст буде виведений. Основна частина, яка має тип ціле число, є входом в основну програму або бінарний файл. Ви помітите void всередині () який вказує на те, що він не має жодних параметрів, які будуть передані в цю функцію. std означає іменований простір, який є досить просто механізмом організації коду в логічні групи для запобігання конфліктів імен при роботі з декількома бібліотеками. Ви побачите багато прикладів, де вони декларують using namespace std; однак я ніколи не використовую цю підхід, оскільки він може спричинити конфлікти імен у більш складних застосунках. Оператор << називається перегруженим оператором. Вони є фактично функцією дуже подібною до printf в мові C. Ми просто переміщаємо “Привіт, світ!” стрічку в функцію cout за допомогою використання перегруженого оператора <<. Далі ми відправляємо endl який створює нову строку в консоль. Останній рядок — повернення 0. Поки наша основна функція має тип int, ми повинні повернути щось. У C++ 11 немає необхідності цього в основній функції, але потрібне для кожної іншої функції. Я дотримуюся традиції і просто включаю його. Наступний етап — компілювання file. Перше, що відбувається, — це всі вміст заголовка iostream потрапляє в джерело file, як ми обговорили раніше. Процес компіляції відбувається тоді, коли весь вміст нашого існуючого коду проходить через аналіз. У підсумку ми маємо всі вміст iostream у новому file, а потім всі вміст нашого існуючого file додається до окремого file. Компілювання приймає наш текст file, cpp file і перетворює його в проміжний формат під назвою obj file. Створюється абстрактна дерево синтаксису, яке є перетворенням константної інформації, змінних і інструкцій. Коли дерево створюється, код генерується. Це означає, що тепер у нас є машинний код, який виконуватиме наш ARM процесор. Кожен cpp file (одиниці перекладу) має свій власний відповідний об'єкт file.

З'єднання приймає наші файли obj, наші скомпільовані файли, а також C++ Стандартну бібліотеку і знаходить, де кожен символ і функція знаходиться, і з'єднує їх усі разом у одне виконуване.

Поняття вище можуть здатися трохи заплутаними, якщо ви новачок у програмуванні, але коли ви кодуєте і компілюєте, а потім відлагоджуєте і хакуєте мовою ассемблера, все стане дуже ясним, і ви навчитеся володіти процесором. Наступна неділя ми вийдемо на тему Відлагодження Hello World.

results matching ""

    No results matching ""