Step 6 (S-10003)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/545/step/6

Step 6 (S-10003) 1.png

[00:00 - 00:15] для того чтобы лучше понять как работают структуру давайте рассматривать пусть у нас есть структура point определенно внутри заголовочные файлы поиск точка точка


[00:15 - 00:32] определение метода shift мы вынесем и того чтобы принципе компилировался то есть определения структуры мы подключим заголовочный файл понято


Step 6 (S-10003) 2.png

[00:32 - 00:50] давайте посмотрим во что то колеруется данных так как я понял и не содержит в себе точку входа нет никакого смысла подгонять поэтому брать калькулятор и посмотрим на ассемблерный код который генерируется


[00:50 - 01:08] когда мы посмотрим на секретный код то можно легко заметить что он состоит из 1 единой сердца до сердца соответствовать методу определенном файле можно посмотреть на то имя которое компилятор сгенерировал для


Step 6 (S-10003) 3.png

Step 6 (S-10003) 4.png

Step 6 (S-10003) 5.png

[01:08 - 01:27] функции shift и даже можно проверить что команда из пристроя спирт при котором говорили на прошлой лекции справятся с дешифровать от времени то есть можно запустить командную переспросил передачей это имя смотреть что она действительно сможет расшифровать и выдать


[01:27 - 01:42] сигнатур которая однако остается загадкой а где же тот код который компилируется непосредственно определения структуры вот


Step 6 (S-10003) 6.png

Step 6 (S-10003) 7.png

Step 6 (S-10003) 8.png

[01:42 - 01:57] оказывается что непосредственно определения структуры не генерировать никакого кода для того чтобы проверить эту догадку давайте создадим пустой файл значением себе запятая


Step 6 (S-10003) 9.png

[01:57 - 02:14] и добавим туда включение файла то есть то что мы передадим компилятора просто проходу препроцессора будет состоять из определения структуры и в общем то там посмотрим какой код звенигород компилятор


Step 6 (S-10003) 10.png

Step 6 (S-10003) 11.png

[02:14 - 02:32] оказывается что этот код будет состоять только из служебных символов и никаких инструкций особенно в там не будет то есть надо хорошо понимать что структура они существуют только в момент компиляции структура определяет то как


[02:32 - 02:51] данные адресуются памяти как они располагаются но после того как ваш код компилировался никакой информации о структуре тому же нет вся работа происходит на уровне копирование 1 носил байт в


[02:51 - 02:59] на место другого массивы вся информация идет на уровне байт без информации о конкретных тебя