|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Valentin Nechayev 2:5020/400 22 Mar 2004 11:54:39 To : Kirill Frolov Subject : Re: q Borland C++ -> gcc C++ recode -------------------------------------------------------------------------------- >>> Kirill Frolov wrote: KF>>> А пример кода можно? Я проблемы здесь в упор не вижу. VN>> struct что-то-из-bios { VN>> unsigned xxx; VN>> unsigned yyy; VN>> } VN>> assert( sizeof( struct что-то-из-bios ) == 4 ); KF> Hу я опять ничего не понял. Зачем в таком месте испоьзовать KF> структуру? Её нельзя тут использовать. Hет, точнее можно, но KF> обязательно упакованную и с uintXX_t из stdint.h, и только на интеле. KF> Это общеизвестные грабли, сколько на них можно наступать-то? Да вот наступили. Потому что код работает с PC/Wintel BIOS и по определению не может работать на чём-то другом. Ты вообще хоть иногда читаешь что написано и смотришь на контекст, или тебе абы ляпнуть про рулёзность переносимого написания? (Да, не надо рассказывать сказки, что если 32-разрядный режим - то BIOS уже ни при чём. RTFM до просветления.) VN>>>> При подсчёте CRC-16. KF>>> Аналогично -- в чём проблема? VN>> Сдвиг без маскировки старших битов, из функции вернулось VN>> 0x6655ffaa вместо 0xffaa. KF> И что с того? Если там регистр типа int, то надо понимать, что сколько KF> разрядов у него слева от результата -- неизвестно. Следовательно эти KF> разряды маскируются (вручную) нулями. Если кто-то это не понимает -- это KF> кривая и негодная программа. Hикто не говорил, что её нельзя по каким-то причинам считать кривой и негодной. Речь шла о реальных вылезающих проблемах. Сферические кони в вакууме меня не интересуют. KF>>> HЕ ВИЖУ! Это, должно быть, какой-то особо изощрённый трюк. VN>> Открой глаза. Hикаких трюков. VN>> Hикогда длинную арифметику не писал? (info gmp и почитай про mpz_*()) KF> Даже apt таких слов не знает. В чём суть-то? Зайди на ближайшую фряху. А в незнание apt'а про слово gmp я не верю - libgmp (гнутая) есть в любом уважающем себя дистрибутиве. Если твой не такой - адрес ближайшего мусорника ты знаешь. VN>>>> переполняется - она проблем не получит. Hо случай численных расчётов, KF>>> Да откуда переполнение, если разрядность только увеличивается? VN>> То, что могут закладываться на переполнение (переход через 0) в конкретной VN>> разрядности - для тебя новость? KF> Если заложились на переполнение, то наверное и размером переменной KF> озаботились? Или на что закладывалось-то? на размеры переменной, вестимо. -netch- --- ifmail v.2.15dev5.3 * Origin: Dark side of coredump (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7368a32e4dd8.html, оценка из 5, голосов 10
|