История изменений
Исправление hateyoufeel, (текущая версия) :
Любой, любой процессор исполняет код из одного, единого адресного пространства.
Нет. ARM умеют выполнять код прямо с флешки, например.
Сейчас нет процессоров с несколькими разными адресными пространствами.
Есть, в различных видах. Начиная от примера с флешками выше и заканчивая NUMA.
Си настолько приближен к процессору, что можно без операционки программы делать и даже без менеджера динамической памяти.
Т.н. «близость» к процессору тут не причём. Это вопрос наличия рантайма и его портируемости. Rust и многие другие языки обладают тем же свойством.
А, например, C# без динамической памяти попросту невозможен.
Для C# были рантаймы, работающие поверх голого железа. Это не то чтобы большая сложность.
Только не надо вдаваться в крайности и всё пытаться делать только на Си или только на C#. Каждый язык удобен для своей задачи.
Очень общее утверждение, лишённое смысла.
Т.е. я тоже против всяких defer языке.
Всем насрать на то, против ли ты. В Си уже есть defer в виде компиляторных расширений: в GCC/Clang это __attribute__((cleanup))
, и код с ними УЖЕ в твоей системе. В заглавном посте я написал про добавление уже существующего функционала в стандарт языка.
Исходная версия hateyoufeel, :
Любой, любой процессор исполняет код из одного, единого адресного пространства.
Нет. ARM умеют выполнять код прямо с флешки, например.
Сейчас нет процессоров с несколькими разными адресными пространствами.
Есть.
Си настолько приближен к процессору, что можно без операционки программы делать и даже без менеджера динамической памяти.
Т.н. «близость» к процессору тут не причём. Это вопрос наличия рантайма и его портируемости. Rust и многие другие языки обладают тем же свойством.
А, например, C# без динамической памяти попросту невозможен.
Для C# были рантаймы, работающие поверх голого железа. Это не то чтобы большая сложность.
Только не надо вдаваться в крайности и всё пытаться делать только на Си или только на C#. Каждый язык удобен для своей задачи.
Очень общее утверждение, лишённое смысла.
Т.е. я тоже против всяких defer языке.
Всем насрать на то, против ли ты. В Си уже есть defer в виде компиляторных расширений: в GCC/Clang это __attribute__((cleanup))
, и код с ними УЖЕ в твоей системе. В заглавном посте я написал про добавление уже существующего функционала в стандарт языка.