Step 7 (S-6977)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/534/step/7

Step 7 (S-6977) 1.png

[00:00 - 00:18] 1 способ предполагает использование макроса это специальный командный спринт + которая отрабатывает в момент компиляции все таки команды начинаются со знака 1 из таких команд мы уже встречались эта команда include которая подключает заголовочные внутрь другого


[00:18 - 00:34] для того чтобы достичь одиночного включения то есть избежать многократного надо используя следующую конструкцию она состоит из условного выражения давайте я попытаюсь переписать это


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


[00:50 - 01:07] выставлению некоторого соответственно если нет то есть пол тогда мы заходим внутрь условном выражении ну и


[01:07 - 01:24] на языке макросов заходим внутрь выражение означает обработку кода не что и с ндс соответственно мы включаем код внутрь другого другого


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


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


[01:59 - 02:18] и константу которая определенно просто именно она должна быть уникальна для каждого файла потому что в процессе компиляции вы будете просто погулять


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


[02:36 - 02:53] если вы напишете в начале вашего заголовочный слова прованс то компилятор поймет что данный файл необходимо включать только 1 раз и вам не потребуется добавлять никакие другие команды


[02:53 - 03:10] что значительно облегчает создание заголовочных подведем резюме зачем нужны правила для куда более непонятно куда вы кладете определение зачем нужны заголовочные файлы


[03:10 - 03:28] теперь стало понятно заголовочные файлы нужно класть объявления соответственно если у вас есть какая то функция вы пишете ее определение внутрь с кодом то есть внутрь себя а если вы хотите использовать данную функцию за пределами этого файла


[03:28 - 03:38] что вы добавляете ее объявления в некоторых еще и файл который вы включаете в каждой из которых вы хотели танцевать