Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: q Borland C++ -> gcc C++ recode   Kirill Frolov   21 Mar 2004 09:10:49 
Архивное /ru.linux/3833b0e226c4.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional