Step 6 (S-10003)
Step on Stepik: https://stepik.org/lesson/545/step/6
[00:00 - 00:15] для того чтобы лучше понять как работают структуру давайте рассматривать пусть у нас есть структура point определенно внутри заголовочные файлы поиск точка точка
[00:15 - 00:32] определение метода shift мы вынесем и того чтобы принципе компилировался то есть определения структуры мы подключим заголовочный файл понято
[00:32 - 00:50] давайте посмотрим во что то колеруется данных так как я понял и не содержит в себе точку входа нет никакого смысла подгонять поэтому брать калькулятор и посмотрим на ассемблерный код который генерируется
[00:50 - 01:08] когда мы посмотрим на секретный код то можно легко заметить что он состоит из 1 единой сердца до сердца соответствовать методу определенном файле можно посмотреть на то имя которое компилятор сгенерировал для
[01:08 - 01:27] функции shift и даже можно проверить что команда из пристроя спирт при котором говорили на прошлой лекции справятся с дешифровать от времени то есть можно запустить командную переспросил передачей это имя смотреть что она действительно сможет расшифровать и выдать
[01:27 - 01:42] сигнатур которая однако остается загадкой а где же тот код который компилируется непосредственно определения структуры вот
[01:42 - 01:57] оказывается что непосредственно определения структуры не генерировать никакого кода для того чтобы проверить эту догадку давайте создадим пустой файл значением себе запятая
[01:57 - 02:14] и добавим туда включение файла то есть то что мы передадим компилятора просто проходу препроцессора будет состоять из определения структуры и в общем то там посмотрим какой код звенигород компилятор
[02:14 - 02:32] оказывается что этот код будет состоять только из служебных символов и никаких инструкций особенно в там не будет то есть надо хорошо понимать что структура они существуют только в момент компиляции структура определяет то как
[02:32 - 02:51] данные адресуются памяти как они располагаются но после того как ваш код компилировался никакой информации о структуре тому же нет вся работа происходит на уровне копирование 1 носил байт в
[02:51 - 02:59] на место другого массивы вся информация идет на уровне байт без информации о конкретных тебя