![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Anikmar |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
И каков же размер int в TurboC?
sizeof нужен для того, чтобы свой код сделать правильным и не зависимым от конкретного компилятора (даже не платформы).
Если вы считаете этот подход правильным - вперед с песнями и барабаном Другой момент, правильно написанный код с использование sizeof, при смене в компиляторе размера базового типа, вообще менять не придется. Нигде. Был int 16, затем 32, сейчас 64 будет - код будет компилироваться и работать.
Что вы. Я даже размер байта не знаю Это сообщение отредактировал(а) Anikmar - 2.4.2009, 16:04 |
||||||||
|
|||||||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
на одну операцию, конечно не будет, я в общем-то пекусь не столько о производительности программы, сколько о производительности программиста не понял, а при чем тут криворукость? assert дает простой способ решать конфликты в отладочной версии, суть не в том, что он пропускается в релизе, а в том, что в релизе его можно переопределить на нормальный выход из программы, с соответствующим уведомлением пользователя, мол "версия программы несовместима с платформой, обращайтесь по такому-то адресу, к разработчику" ну и соответственно, если хоть раз в жизни он произойдет, то дать возможность ему отписаться тебе, что мол, "вот такая-то оч. хорошая программа, а на моей машине не работает ( , прошу учесть мои пожелания в следующих версиях" ничего страшного в этом нет, это простой способ экономить тебе твое же время, не более практически в любой программе существует вероятность незапланированного вылета, к примеру: файл, который является основным источником информации, на данный момент не читается (кто-то его открыл) что делать? 1. можно подождать пока его не закроют (многопоточность, система слежения и т.п.) 2. можно предложить пользователю отменить, приостановить текущую операцию (комбинац. логика, куча проверок, условий и т.п.) 3. а можно просто остановить программу (единый механизм обработки критических ошибок и обратной связи) только третий вариант дает тебе возможность не городить огород и экономит время (дает возможность потратить его на основной функционал программы) а если твой софт начинает регулярно присылать тебе такие баг репорты, то вот тут как раз и можно начинать работать над более гибкими версиями, совершенствуя код, тем более, если это коммерческий проект (дополнительный способ оправдывать вложения в него), т.с. двигать его по нарастающей, но всегда законченным (локальный минимум) GoldFinch, Anikmar, чего делите-то, не пойму две крайности одной формальности )) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Я не сказал криворукость. Я сказал "Кривое программирование". Руки, которые это делают - могут быть золотыми. Именно про отладку я и сказал. Конкретно в приведенном примере проверяется не платформа, а совпадение необходимых размеров для преобразования типа. Это я и назвал кривым программированием. Вместо того, чтобы вводить дополнительную проверку на то, что размеры нормально совпадут - просто не рисковать и делать гарантированно правильно. Это даже не платформо-зависимость, а компилеро-ззависимость.
И я про это. Никаких дополнительных затрат времени особо не будет - сразу сделать нормально. А потратить чужое время на написание гневного письма, а затем свое - на ответ (а если гневных писем будет много? ИМХО: платформу вообще надо проверять при инсталляции. "Извините - данная версия программы не совместима с вашим ковриком для мыши" что-нибудь такое. Так вот откуда надписи типа "Произошла внутренняя ошибка программы. Все данный будут потеряны. Если ошибка повторится свяжитесь с разработчиком". В ведро такой софт. ИМХО. Надо к таким фразам издевательскую надпись добавлять "Видите-ли, программисту было лень городить огород- так как основное время он потратил на другой функционал, но он с удовольствием выслушает ваши претензии"
Да ничего мы не делим. У каждого свой подход и свой взгляд на жизнь. Я чистой воды прикладник, писал вещи узкоспециализированные и заказные. Напрямую общался с конкретными пользователями и очень хорошо знаю претензии типа "Эту кнопку надо по-другому назвать, а вот это поставить в левый нижний угол". Уровень моих пользователей - это при слове файл, они сразу думали про пластиковый конвертик. И вариант "напишите разработчику" у меня не прокатывает никак. Первый мой принцип - максимальная дуракоустойчивость". |
||||
|
|||||
| GremlinProg |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
ну, это как посмотреть, где ты встречал платформу, которая разницу между размерами двух своих типов данных декларирует по-разному? это просто логическое следствие я в таком случае не вижу причины называть здесь что-то кривым на разницу между отладкой и релизом, я ведь тоже внимание обратил:
сразу нормально - это только если задачка не сложная, без ветвлений а конфликты с пользователями по-хорошему должны решать "манагеры по работе с клиентами", они для этого и нужны, если ты совмещаешь эти должности, требуй прибавки к зарплате, прибавили - терпи сам выбрал, а нет - уходи, не понимаю, зачем тратить нервы впустую (клиенты ведь разные бывают, могут любой мелочи придраться, не наше это дело, вникать в их "критические дни") какие данные? если софт в принципе не для этой платформы, какие он там данные-то успел навоять? ну, можно поздравить его, коли так, мол мы даже не подозревали о таких скрытых вохможностях нашей программы, такую поддержку мы намечали только в n-ой версии продукта -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||
|
|||||||
| Anikmar |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: нет Всего: 59 |
Ну вот, завел вас похоже. Опять таки к конкретно этому примеру: ну никак не должен софт зависеть от разницы в размерах int и указателя - хоть тресни. Останусь при своем ИМХО и не буду больше на эту тему спорить.
Каким образом ветвления влияют на аккуратность в преобразованиях и соблюдение чистоты кода? Напротив, чем сложнее задача, тем лучше придерживаться одного стиля.
Если такая проверка перед запуском - то конечно не успеет еще ничего наваять - кроме инсталяции самой программы, но об этом я уже написал. А так я такую фразу привел не касаемо кобсуждаемой ситуации, а касаемо к вашей точке зрения - пользователь это к менеджерам, интерфейс - попозже, главное функционал. Сколько людей, столько мнений.
Сам во всех ипостасях - очень просто так как фрилансер. |
||||||||
|
|||||||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Согласен с Anikmar,
для переносимости кода необходимо использовать sizeof() там где это нужно. Для тех кто в "танке" и не хочет выходить от туда почитайте хотябы эту статью 20 ловушек переноса Си++ - кода на 64-битную платформу -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
Dem_max, а при чем тут х64 ? там чтоли sizeof(int)!=sizeof(void*) ?
|
|||
|
||||
| Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
да x64 тут особо не причем, но статья хорошая.
для некоторых платформ да. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |