Наша вторая сессия началась в Universidad Nacional de Ingeniería, и мы были так взволнованы нашим вторым классом и классификацией Перу на чемпионате мира ФИФА!!
… так сильно, что мы пошли с нашими футболками выбора.

Класс начался с экзамена по последнему классу. Экзамен касался некоторых команд LINUX, создания и редактирования файлов с помощью VI.

Темой нашей сессии был C, но сначала я напишу о командах GIT:

ГИТ

GIT — это программное обеспечение для контроля версий, разработанное Линусом Торвальдсом. GIT позволяет нам создавать репозитории и делиться нашим кодом с другими членами нашей команды.

Наиболее распространенные команды для большинства проектов:

$ git init → Это позволит нам создать новый репозиторий
$ git add. → Это позволяет нам загружать данные в промежуточную область.
$ git commit -m “comment” → Эта команда позволяет нам загружать файлы в заголовок и добавлять комментарий к load.
$ git push→, которые позволяют нам отправлять данные в удаленный репозиторий, в моем случае — в mi GitHub Repository.

C

C — это язык программирования, разработанный Деннисом Ритчи в период с 1969 по 1972 год. C является предшественником языка B и в настоящее время является самым известным языком для создания системного программного обеспечения. C известен своей эффективностью и универсальностью для работы с другими языками, такими как ассемблер, C++, python и т. д.

C — важная тема для наших занятий, потому что ядро ​​Linux программируется на C, и существует множество приложений, написанных на C. C предлагает структуры и указатели, которые очень полезны как для оптимизации кода, так и для создания новых программ.

Последним стандартом для C является ISO/IEC 9899:2011. Это изменение было в основном связано с некоторыми обновлениями библиотек C++ STL и необходимостью того, чтобы C мог работать с этими стандартами C++.

В Linux компилятором для C является gcc, мы можем установить компилятор с помощью:
$ sudo dnf install gcc.

Мы начали с классического Hello_World:

но теперь мы изучаем последствия простого приветствия, мир.

Процесс компиляции.

Процесс компиляции состоит из 3 шагов: компиляция, компоновка и выполнение.

Для компиляции. Здесь компилятор анализирует синтаксис и семантику предварительно обработанного исходного кода и транслирует его, создавая файл, содержащий объектный код.
$ gcc -c hello_world.c

Для ссылки: ссылка — это процесс ссылки объектов на другие модули (библиотеки)
$ gcc hello_world_1.o -o hello_world_1.exe

Для выполнения: наконец-то мы можем выполнить программу с помощью следующей команды.
$ ./hello_world.exe

Анализ кода

Объявление главного меню — int main, оно объявлено int, потому что возвращает целое число, для них в конце помещаем return 0.

Также мы можем поставить exit_success или exit_failure вместо возврата 0:

Теперь проверьте следующий код:

Что такое argc и *argv[] ?
argc количество аргументов, которые получает наша программа при вызове из командной строки (и с любой другой стороны).
*argv[] — расположение аргументы, первый аргумент — это имя исполняемого файла, поэтому, если мы не передадим аргументы программе, она напечатает 1.

Строка и указатели

Строки представляют собой путь к массивам и позволяют вставлять символы или указатели.
Строки имеют некоторые особенности, например, конец строки определяется с помощью \0 в последнюю позицию. Переход строки обозначается \n.

Есть много способов инициализировать строку:

Если мы хотим пройти через строку, мы можем пройти через нее, как если бы это был массив через цикл.

Теперь, когда у нас есть основа строки, мы можем использовать указатель для перемещения по строке.

Указатели — это переменные, которые сохраняют адресную память других переменных. Есть 2 важных символа:
& → амперсанд позволяет иметь адрес памяти любой переменной
* → звездочка выполняет 2 функции. Первая функция предназначена для объявления указателя, а другая — для получения значения переменной.

Например:

Здесь мы объявляем указатель py1 в строке 16, а в строке 17 присваиваем адресную память y1[0].

В строке 19 мы используем вторую функцию *, *z имеют значение x.

Структуры

Структуры в C позволяют определять объект и присваивать свойства, тогда у нас могут быть разные типы объектов с одной и той же структурой, например, мы объявляем структуру комплексного числа:

Структурный комплекс имеет 2 атрибута: действительную часть и мнимую часть. Затем мы можем определить общий комплекс структур и объявить разные комплексные числа:

Здесь также у нас есть функция, которая складывает два комплексных числа.

MakeFile

Файл MakeFile позволяет сократить процесс компиляции программы на C. По сути, makefile запускает скрипт для компиляции, компоновки и выполнения определенной программы. Это очень удобно, когда вы работаете над большим проектом и не можете компилировать программы каждый раз, когда вам нужно запустить какой-то код.

Этот пример позволяет скомпилировать файл «hello_structs_1.c», связать объект и выполнить в зависимости от SO (Windows или Linux). Наконец, есть еще одна функция, которая называется clean.
Clean позволяет снова скомпилировать, когда вы изменили исходный код.

Чтобы запустить скрипт, введите:
$ mingw32-make run

если вы изменили код, введите:
$ mingw32-make clean
$ mingw32-make run

Вот репозиторий, который я использовал:
https://github.com/jrverl/C

И спасибо, что пришли!!

… И спасибо учителю Джулите и командам Fedora, Gnome и LinuxFundation!