Re[9]: C++ illegal instruction
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.08.25 08:53
Оценка:
Здравствуйте, alpha21264, Вы писали:

Pzz>>Причем помогает даже не от случайных ошибок, а помогает читать код. Например, когда хочешь понять, кто поднасрал в сложную структуру, внутрь функций, которые получают ее, как указатель на константу, можно не заглядывать.


A>Ну вот... фигня.

A>Нормальный программист знает, что не надо менять входные параметры, и как правило не меняет.

А куда ему деваться, если основной выразительный механизм в Си — это функции, которым передаются указатели на структуры, с котороми они что-то делают?

A>Поэтому с моей точки зрения нужно маркировать не константные аргументы, а изменяемые аргументы.

A>Таким образом в правильно написанной программе хлама не будет.

Ну в принципе, да. Лучше иметь константность по умолчанию и явно задаваемый признак того, что переменная может меняться. Но это — очень радикальное измненение по сравнению с Си. В Rust, не отягощенном совместимостью с Си, вроде так и сделано

A>А сейчас хлама столько же, сколько полезной информации или даже больше.

A>Это не правильно.

Раздражает микс, когда в проекте имеется полно функций, параметры которых по сути константные, но таковыми не размечены.

A>Другой маразм, который никто не знает, и который любят спрашивать на собеседованиях -

A>в зависимости от положения слова const может быть константный адрес или константное содержимое адреса.

На собеседованиях любят спрашивать всякую фигню.

У Си есть неочевидные нюансы, но никто в своём уме не будет использовать их в боевом коде.

Мой любимый пример: x = (flag ? sin : cos)(y); Опыт показывает, что эта простая конструкция приводит многих собеседователей в тупик, в диапазоне от "а что это значит?" и до "а что, так можно?".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.