Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Про интерпретаторы байткода на Хабре недавно был очень хороший пост. Мне кажется, он будет вам интересен, в том числе как пример хорошей обучающей статьи на данную тему.
А код плохой, да. Удручают, например, определения функций в заголовочных файлах, или каскады else if вместо одного switch.
#define $CRGОфигеть! А что, так можно было?
Implementation-defined. Где-то можно, где-то нельзя.
https://en.cppreference.com/w/c/language/identifier
An identifier is an arbitrarily long sequence of digits, underscores, lowercase and uppercase Latin letters, and Unicode characters specified using \u and \U escape notation (since C99).
(...)
It is implementation-defined if raw (not escaped) Unicode characters are allowed in identifiers
В GCC, например, можно.
Виртуальная машина своими руками