[an error occurred while processing this directive]
|
... а С++. В С нельзя делать передачу парметра по ссылке (unsigned char &crc), а делать определение переменной внутри for-а вообще говоря и в C++ некорректно, но большинство компиляторов допускает.
Ошибка: "for i:=0 to 8" do выполнится 9 раз,
а "for (int i = 0; i < 8; i++)" 8 раз.
Здесь: crc = (crc >> 1) & ~0x80; зануление старшего бита не нужно, т.к. переменная определена как unsigned. поэтому сдвиг сам пропишет туда 0.
Ну и как уже говорили ранее в паскалевском варианте нет определения CRC и сдвига b в конце цикла. Фразы типа __fastcall лучше писать толко тогда когда это действительно необходимо (в других случаях лучше использовать опции компилятора)
E-mail: info@telesys.ru