Ответить на комментарий

Нельзя ли преобразовать функцию ShaCrcRefresh в процедуру?

А зачем? Ведь всегда можно написать:

  CRC:=ShaCrcRefresh(CRC, BufPtr, BufLen);

Причем в этом случае мы оставляем компилятору полный простор для оптимизации распределения переменных. Скажем, если этот вызов встретится внутри цикла, то для CRC компилятор имеет возможность использовать регистр eax. Если бы у нас была процедура с var-параметром, то компилятор был бы вынужден распределить переменную в памяти.

Есть еще один плюс. Если, например, нам требуется вычислить много мелких CRC для всех слов предложения, то удобна такая форма вызова:

  CRC:=not ShaCrcRefresh($FFFFFFFF, BufPtr, BufLen);

В случае процедуры нам потребовалось бы 2 оператора.

А если я вас не убедил, можете написать процедуру-обертку :)

Ответить

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <h1> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <pre>, <code>, <asm>, <c>, <cpp>, <delphi>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <ruby>, <mytext>. Beside the tag style "<foo>" it is also possible to use "[foo]".

Подробнее о форматировании

CAPTCHA
Ведите текст с изображения. (вводить еще раз после предпросмотра а то не добавится комментарий)
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.