-Поиск по дневнику

Поиск сообщений в rss_forum_sources_ru

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.07.2007
Записей:
Комментариев:
Написано: 80


Переход из 32 бит к 64.

Понедельник, 14 Декабря 2020 г. 18:03 + в цитатник
Qraizer: Походу это некий признак ошибки. Ну, да, часто возникает навязчивое желание не делать статус операции отдельным атрибутом, а как-нибудь замешать в inside boundary уже имеющегося атрибута. Проблемы, когда это невозможно, неизбежны.

Добавлено
P.S. Не стоит никогда так проектировать логику кода. Недаром практически во всех code style standard присутствует правило, запрещающее использование одной и той же переменной для различных целей. Хранить размер и одновременно признак ошибки как раз такой случай. Ну и никогда не следует смешивать типы данных по назначению. Какие свойства сущности нужны, вот такой тип данных и используем. Размер – значит size_t. Символ-байт – значит char. Число-байт – значит signed char. Итп.
Но вообще проблема шире. У меня вот, только что глянул, есть проект на 120к кода. При переносе с 32-х бит на 64 проблема возникла только в двух аспектах, и обе были связаны с изменившимся inside boundary range для size_t. Один из-за DWORD в использовавшихся функциях и структурах Win32, второй из-за 32-битности MS Office SDK, принимающего int через VARIANT. Проблема была решена путём написанного на коленке простенького safe_cast<> в точечных местах, общим числом в пять штук. Никаких десятков предупреждений и массового рефакторинга.

https://forum.sources.ru/index.php?showtopic=420996&view=findpost&p=3842828

Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку