|
2.8, Аноним (8), 22:32, 23/11/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
А те, кому реально это было нужно — не ждали и использовали <stdbool.h>, начиная с C99…
| |
|
3.68, Анон28679234 (?), 02:39, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вообще довольно странно рассуждать о примитивных типах как о "реально нужных" или ненужных
При определенной степени ментальных упражнений можно даже ассемблер называть синтаксическим сахаром для электроцепи, однако я не вижу очереди желающих написать себе сайт с помощью паяльника
| |
|
|
3.23, Аноним (23), 23:43, 23/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Возможно, до этого момента он не программировал вообще. А теперь пенсия на горизонте, и кто, кроме него, будет охранять пятёрочку на раЁне?
| |
3.24, Аноним (24), 23:44, 23/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> ложечки сахара?
ну вот "синтаксический диабет", уже ампутировали "Удалена возможность определения функций в стиле K&R C,".
| |
|
2.72, Аноним (-), 03:35, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ну надо же, bool/true/false подвезли! Я дожил до этого момента!
Это еще что! Как тебе такое Элон Маск?!
> Появилась поддержка использования спецификатора constexpr для определения объектов.
А вот тут...
> Добавлена поддержка префиксов "0b" и "0B" для указания целых значений в двоичной форме
...всем микроконтроллерщикам радоваться полчаса!
| |
|
1.6, Аноним (6), 22:25, 23/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>Структуры, объединения и перечисления разрешено определять более одного раза в одной области видимости с одним и тем же содержимым и повторяющимся тегом.
а это зачем?
| |
|
|
3.17, Аноним (6), 23:23, 23/11/2024 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Чтоб меньше конфликтов было при всяких #include и inline.
И как 50 лет жили без этого.
| |
|
4.32, Аноним (32), 00:14, 24/11/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
С матами и постоянными переименованиями всего и вся лишь бы этот комп-депилятор перестал жаловаться, а уже начал комп-депилировать.
| |
|
|
|
1.7, Аноним (7), 22:30, 23/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
> Вызов функции realloc() с нулевым размером переведён в разряд неопределённого поведения.
Нужно больше неопределённого поведения! Потом, когда вылезут очередные уязвимости из-за работы с памятью, можно будет с уверенностью утверждать, что где-то ещё оптимизатор смог ускорить работу на 0.01% благодаря этому!
| |
|
2.11, Аноним (11), 22:41, 23/11/2024 [^] [^^] [^^^] [ответить]
| +5 +/– |
Ничего удивительного, в этом языке даже int + int является неопределенным поведением. Нам в 2024 ясно видна дикость этого, а вот палео-кодерам из палео-70-ых это казалось нормальной идеей.
| |
|
3.28, Аноним (23), 00:06, 24/11/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> int + int является неопределенным поведением
Воо, это вообще лютая дичь, я до сих пор не понимаю, КАК такое возможно в языке для системного программирования.
| |
|
4.29, Аноним (23), 00:08, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
П.с. а еще больше недоумеваю от тех УМВРщиков, которые в упор это не замечают.
| |
|
5.33, Аноним (32), 00:16, 24/11/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Потому что системный язык должен полагаться на то как происходит сложение на аппаратном уровне в конкретной системе, а не воротить абстракцию над абстракцией лишь бы все было везде одинаково. Кому надо одинаково идут на джаваскрипт зачем им Си?
| |
|
6.44, Аноним (-), 00:41, 24/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Потому что системный язык должен полагаться на то как происходит сложение на
> аппаратном уровне в конкретной системе, а не воротить абстракцию над абстракцией
> лишь бы все было везде одинаково. Кому надо одинаково идут на
> джаваскрипт зачем им Си?
Вон то на практике вело к дохреналиону багов, увы и ах. А абстракции что, как вон то алго не считай, а если ему надо не менее 32 битов для корректной работы - то хоть ты тресни, но ты или дашь эти 32 бита, или профачишь вычисления. В ряде случаев еще и с вулнами, отрицательными индексами массивов и прочими характерными факапами. И спасибо еще если это дамп памяти по сети или в эфир улетит. А то бывает и такое, heartbleed соврать не даст.
| |
|
7.48, mister_0 (?), 00:47, 24/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
int a + int b <= int max
из этого условия можно вывести weakest predicate и проверить его до сложения
int max - int a => int b
если это условие не работает, то складывать не надо, будет страшный оверфлоу.
один if и тот сделать не могут, подавай им сразу новый язык, бороу чекер, безразмерную арифметику и прочее.
| |
|
8.56, Аноним (-), 01:16, 24/11/2024 [^] [^^] [^^^] [ответить] | +1 +/– | Если значение int a отрицательное, будет переполнение при вычитание underflow... текст свёрнут, показать | |
|
|
6.46, Аноним (-), 00:45, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Потому что системный язык должен полагаться на то как происходит сложение
> на аппаратном уровне в конкретной системе
Угу, именно поэтому они это не implementation-defined, не хотя бы unspecified, а вот сразу UB!
Что бы когда ты писал код, то как он будет работать было именно ХЗ, в зависимости от платформы, железа, флагов, степени безумия разраба компилятора, которые может просто выкинуть твой код нафиг с обоснование "не, ну не бывает же UB в нормальном коде".
| |
|
7.54, анон (?), 01:10, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Такова плата за генерацию эффективного кода. Никто же не заставляет использовать именно Си
| |
|
|
|
|
3.42, mister_0 (?), 00:37, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
ну так ты проверь перед сложением или можешь после сложения в регистр flags посмотреть, там есть бит переполнения.
а ещё есть люди которые рапэраунд с оверфлоу путают
| |
|
|
5.51, mister_0 (?), 00:55, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
но я выше ответил, что проще считать post condition выводить weakest predicate и проверять его до вызова и никаких тебе оверфлоу.
или ты думаешь, что только использования раста и питона это единственный способ?
| |
|
6.65, Аноним (64), 02:19, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> или ты думаешь, что только использования раста и питона это единственный способ?
Скажем так, единственный способ - это не использование С.
| |
|
|
4.52, Аноним (-), 01:04, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> ну так ты проверь перед сложением или можешь после сложения в регистр
> flags посмотреть, там есть бит переполнения.
В сях нет стандартного способа посмотерть флаги, внезапно.
> а ещё есть люди которые рапэраунд с оверфлоу путают
Wrapround определен и гарантирован только для unsigned, если что.
| |
|
|
|
1.15, Маковод (?), 23:02, 23/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Всё это ерунда, есть же православный ANSI C (C89). Всё остальное — ненужный реверс инжиниринг с синтаксическим сахаром.
| |
|
2.41, Аноним (-), 00:34, 24/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Всё это ерунда, есть же православный ANSI C (C89). Всё остальное —
> ненужный реверс инжиниринг с синтаксическим сахаром.
Вот ты на нем и прогай. А я меньше чем на C99 в принципе не согласен, а лучше минимум 11, ибо делать из г-на и палок аналог static assert'а - ну такое себе.
| |
|
1.18, nc (ok), 23:26, 23/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
Расширения GNU давно пора принимать в стандарты С и С++. Простые и полезные идеи, уже давно реализованные и многократно проверенные.
Единственное чего не хватает - расширения __declspec(property) в С++, которое есть в msvc и clang, но нет в gcc.
| |
|
2.25, Аноним (23), 23:46, 23/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Расширения GNU нужно гнaть отовсюду сcaными тpяпками, как и всю идеологию GNU.
Подправил, благодарить не обязательно.
| |
|
|
2.57, анон (?), 01:20, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Можешь раскрыть свою мысль, а то, ведь, не понятно чего сказать хотел?
| |
|
3.61, Кексперт (?), 01:49, 24/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Собирайте свои программы 99 версией они будут работать на 35% быстрее , но не 11-ой версии для иос это наказ от главного создателя именно этой ос , у него пока идёт разборка с банками.
| |
|
|
1.58, Аноним (58), 01:20, 24/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
14 версия при сборке пакетов ругалась на указатели, 15 будет ругаться если код не той версии. Страшно представить на что 16 версия ругаться будет.
| |
1.70, мяв (?), 02:59, 24/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
что-то фигня какая-то с auto..
auto myNum = superCalculator(2,2);
и иди гадай, кого там возвращает твоя функция.
а потом твой друг пойдет гадать и лазать в соседнем файле, когда откроет код .. псоле чего окажется, что эту фцнкцию где-то там по дороге перекрыли/перепилили/вовсе другой файл включили и она тперь возвращает int, вместо uint :|
зачем вообще такое добавлять в язык со сторой типизацией?
ну, серьезно, это ж лол какой-то.
послезавтра эта функция будет char* возвращать. и я, вместо жалобы на неправельный тип в декларации, увижу 100500 жалоб в черт пойми, каких частях кода.
а auto молча станет char*.
| |
|