Причем в этом случае мы оставляем компилятору полный простор для оптимизации распределения переменных. Скажем, если этот вызов встретится внутри цикла, то для CRC компилятор имеет возможность использовать регистр eax. Если бы у нас была процедура с var-параметром, то компилятор был бы вынужден распределить переменную в памяти.
Есть еще один плюс. Если, например, нам требуется вычислить много мелких CRC для всех слов предложения, то удобна такая форма вызова:
Нельзя ли преобразовать функцию ShaCrcRefresh в процедуру?
А зачем? Ведь всегда можно написать:
Причем в этом случае мы оставляем компилятору полный простор для оптимизации распределения переменных. Скажем, если этот вызов встретится внутри цикла, то для CRC компилятор имеет возможность использовать регистр eax. Если бы у нас была процедура с var-параметром, то компилятор был бы вынужден распределить переменную в памяти.
Есть еще один плюс. Если, например, нам требуется вычислить много мелких CRC для всех слов предложения, то удобна такая форма вызова:
В случае процедуры нам потребовалось бы 2 оператора.
А если я вас не убедил, можете написать процедуру-обертку :)