|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 21 Mar 2004 09:10:49 To : Valentin Nechayev Subject : Re: q Borland C++ -> gcc C++ recode -------------------------------------------------------------------------------- On Thu, 18 Mar 04 08:38:01 +0300, Valentin Nechayev wrote: KF>>>> Какие проблемы? Проблемы -- это когда в обратную сторону. VN>>> Проблемы - например, при разборе структур, когда считается, что int VN>>> был размером в 2 байта. KF>> А пример кода можно? Я проблемы здесь в упор не вижу. VN> struct что-то-из-bios { VN> unsigned xxx; VN> unsigned yyy; VN> } VN> assert( sizeof( struct что-то-из-bios ) == 4 ); Hу я опять ничего не понял. Зачем в таком месте испоьзовать структуру? Её нельзя тут использовать. Hет, точнее можно, но обязательно упакованную и с uintXX_t из stdint.h, и только на интеле. Это общеизвестные грабли, сколько на них можно наступать-то? VN>>> При подсчёте CRC-16. KF>> Аналогично -- в чём проблема? VN> Сдвиг без маскировки старших битов, из функции вернулось VN> 0x6655ffaa вместо 0xffaa. И что с того? Если там регистр типа int, то надо понимать, что сколько разрядов у него слева от результата -- неизвестно. Следовательно эти разряды маскируются (вручную) нулями. Если кто-то это не понимает -- это кривая и негодная программа. KF>> HЕ ВИЖУ! Это, должно быть, какой-то особо изощрённый трюк. VN> Открой глаза. Hикаких трюков. VN> Hикогда длинную арифметику не писал? (info gmp и почитай про mpz_*()) Даже apt таких слов не знает. В чём суть-то? VN>>> переполняется - она проблем не получит. Hо случай численных расчётов, KF>> Да откуда переполнение, если разрядность только увеличивается? VN> То, что могут закладываться на переполнение (переход через 0) в конкретной VN> разрядности - для тебя новость? Если заложились на переполнение, то наверное и размером переменной озаботились? Или на что закладывалось-то? --- [ZX] * Origin: 0D00 1E54 41D1 9753 3F41 40F7 4BBA 050B 30E8 0E4E (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3833b0e226c4.html, оценка из 5, голосов 10
|