The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Microsoft открыл CHERIoT, аппаратное решение для повышения б..."
Отправлено Аноним, 08-Мрт-23 09:08 
> Диды (K&R) говорили что просто int может быть по умолчанию или signed
> или unsigned. в зависимости от того, что эффективнее на конкретной платформе.

За это мы теперь жестко отдуваемся, когда вон те красавцы отрицательный индекс массиву скармливают. Потому что могут. И даже никаких вам варнингов при typo и проч. Сказано же что на вход функции - int, а то что он или какое-то вычисление от него в массив потом, ну, кто ж знал. Т.е. знал конечно но это ж не баг так писать. А прогер глядя на такой тип аргумента может вообще-то и не париться особо, что не факт что при вычислении именно положительное получилось. Кто сказал что он начинку вызываемой функции и лимиты применимости ее аргументов наизусть знает? А, никто? Ну вот и даст отрицательное, раз там int, значит так можно. А дид еще и никаких проверок на входе не сделает, не царское дело на невалидных аргументах корректно вываливаться, лучше давайте всю оперативку воооон туда в коммуникационный интерфейс сдампим. Иногда это капец как удобно - но только не легитимным создателям или овнерам системы :)

И кстати если кто удумает int сделать unsigned по дефолту - он столько нового узнает сразу, когда вон те древние функции if ... < 0 как error использовали, плин. Ах да, ну конечно, структурированые antibug апи и прочие глупости - для лохов и нувориш. Которые так то прочухали что даже на сях можно какой-нибудь return struct забахать и это даже не настолько уж и неэффективно если не борзеть чрезмерно, а вернуть можно и статус операции и какие-то добавочные детали и еще что-то. Без какой-то левой черной магии с if abc > 100500 то это оказывается совсем не result а ашипку так сигналят, дескать, но поди там догадайся еще.

А эффективность это прекрасно но только до того момента когда вон там кодеры делают допущение что int это минимум 32 бита, но тут оказывается что 16 так то тоже формально ладушки - и вооооот вам тут всем дикий багодром. А по стандарту и не подкопаешься, так можно. И если в C89 это еще простительно было то в C99 и тем более 11 такие спеки уже совсем незачет.

> И если нет разницы, то пиши int, будет быстрее, точно не медленнее.

Ага, и оно быстро так оперативку куда-то налево дампит. А чо - caller видит что там int параметром и не парится (a - b) или (b - a), int ведь и отрицательное должен знать. А то что там кто-то массив дереференснет это ж сорц функции читать надо. Агаблин вот все читают сорц подключаяемых либ, от и до. Вот прям из их объектного кода сразу.

> А в эпоху дидов caller был локальным и контролируемым, не то что
> сейчас - аноним с интернетов

Диды не писали сложнее хелло ворлда и либы не признавали в принципе? А как тогда те навороты с линковкой появились? Они ж как раз для вот этого вот.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру