Си 23
Посмотрел список изменений, в глаза мне бросилось следующее.
Удалили старый синтаксис функций, где можно было описывать типы аргументов после определения функций. А я про него и
Атрибуты функций можно теперь писать в синтаксисе Си++, то есть в виде [[атрибут]]. Это очень хорошо. Так они лучше различимы, в отличие от спецификаторов, и имеют собственное пространство имён.
Изменили действие ключевого слова auto. В Си оно обозначало класс хранения, причём
Функции с пустым списком аргументов будут обрабатываться, как функции без аргументов. Это тоже хорошо, потому что раньше было неочевидно. В своё время для меня открытием было, что функции без аргументов должны в Си задаваться через синтаксис func(void), правда я в коде так всё равно не делаю.
Прекращена поддержка триграфов. Это, конечно, хорошо, но жалко. Речь идёт об альтернативных конструкциях в языке, которые были введены
Добавили конструкцию #embed, которая позволяет включать в код бинарные данные. Тоже здорово, в игре «Морской бой», выпущенной ко Дню радио мне пришлось включать игру на Луа внутрь сишного кода внешними утилитами, а теперь можно это делать одной директивой.
Остальные изменения тоже полезны, буду знакомиться, но эмоционального отклика не вызвали.
Комментарии 10
С людьми так же икак-то работает
Чуть поправил.
1989, 1999, 2023
Вообще, чистый C — только для олдфагов, ну или для программирования микроконтроллеров, для которых это единственный поддерживаемый язык.
C++ всё же поприятнее во всех отношениях.
Если не умничать, а писать с использованием минимально возможного набора фич C++. (К сожалению, на C++ очень легко писать нечитаемый код, и слишком многие так и делают).
Что это год релиза я понимаю, но ему две цифры оставили и логика поехала.
Ну я на Си пишу для Флиппера Зиро и The Sensor Watch, например. Там ничего другого нет. Для Флиппера появился mJS, но в нормальное приложение программу на нём не оформишь. Там отдельная папка, даже без иконок.
Олдфагов в мире, видимо, очень много: https://habr.com/ru/companies/ssp-soft/articles/821663/
Я думаю, что бОльшая часть этого всего — всякое легаси. И микроконтроллеры :)
какой-то момент старое железо перестало справляться. И понадобилось перейти на новое. И оказалось, что дешевле (на порядки!) построить на новом железе эмулятор старой платформы и перенести туда систему, написанную на чудо-языке почти «как есть», чем переводить всё на другой язык.
Помню, доводилось мне программировать на языке, разработанном одной несуществующей ныне североамериканской компанией (на «N» начинается) для собственной платформы на которой строилось много какое телеком оборудование.
Так вот.
В