На этом уроке мы разберем предварительно объявление функций, а также назначение заголовочных файлов в Корсарах
Подстатья
8 121
24
nazarpunk, из того, что я разобрал: каждой функции присвоен так называемый токен. Он видит ключевое слово, получает ее токен, далее по нему решается что с этим делать - если это, предположим, инклуд, то надо подключить еще файл, если это ф-ция - то исполнить функцию.
Это надо садиться и целенаправленно разбирать этот их компайлер. Я более приоритетными вопросами озадачен, поэтому сильно не вникал пока что. Но в перспективе хочу разобраться, конечно. Штука интересная))
Какой-то предварительный анализ при запуске тоже есть, но до него я в коде не докопался. Можно прошляпить что-то по синтаксису (точку с запятой, например), а оно нормально запускается и еще и исполняет код.
А бывает напишешь обращения к функциям неправильно (лишние аргументы, например), а оно все равно работает. Но в точке исполнения этого обращения обрывает блок кода, из которого это вызвано, пишет в логи, но работает дальше.
А иногда можно заюзать какие-то конструкции, которые он не поддерживает. И тогда он ошибку при запуске выдает. Отсюда вывод, что какой-то анализ он таки делает при запуске, вот только я не знаю какой.
30
Это интерпретацией же называют?
Разница тонкая. Если он прям из букв исполняет, то интерпретация. Если предваритеьно превращает во внутреннее предстваление, то компиляция.
24
nazarpunk, чисто технически, имя класса этой читалки COMPILER.
Но как по мне - это толи парсер, толи интерпретатор (я не силен в таких штуках). Оно на ходу их читает, да. Можно прям в запущенной игре код менять и файлы кусками подключать/отключать.
Код не исполняется напрямую. Оно его читает, ищет знакомые слова и вызывает нужные функции. Это интерпретацией же называют?
30
что никакого компилятора нет
Вообще никакого? Код прям из текстовых файлов исполняется без компиляции?
В этом уроке мы рассмотрим доступные в скриптах типы данных и как с ними работать.
Подстатья
20 219
24
nazarpunk, в качестве эксперимента я попробую скормить это игре и посмотреть как оно себя поведет.
Уверее, что работать это не будет, интересно только как именно.
Из-за того, что нормальной компиляции нет, такие вещи могут вести себя очень непредсказуемо. Например выполнится до первой кавычки и отвалится до конца блока кода. А дальше опять всё будет выполняться
30
Альтернативного варианта записи строки не существует.
Тоесть так не сработает?
string A = """A""";
string AB = "A" "B";
В этом уроке мы рассмотрим способы передачи данных между функциями.
Подстатья
5 117
24
nazarpunk, никак не понять. Тут ссылочный тип проприетарный, еще и на костылях.
С этим сложности, да. Поэтому макимально всем рекомендуется подписывать типы данных в названии переменных, чтоб хоть как-то снизить жопную боль.
30
avuremybe, ну как-бы это ссылка, но с типом. Как по нотации функции понять какой тип ожидается в a?
void NumChanger (ref a)
{
}
24
nazarpunk, или я что-то не понял, или твой out это просто переданная ссылка, в которую ты данные закидываеш, а не используеш.
Если да - то да, передача ссылок присутствует и такие финты делать можно.
В этом уроке мы разберём понятие функции в программировании, научимся их создавать и использовать.
Подстатья
1 128
30
Поскольку в обеих случаях имеется в виду одно и то же, то употребление данного термина является занудством ради занудства.