Я использую функцию SDBM хэш в программе и есть вопрос, касающийся определения функции, приводится ниже:Функция размещения аргумент в C
static unsigned long
sdbm(str)
unsigned char *str;
{
unsigned long hash = 0;
int c;
while (c = *str++)
hash = c + (hash << 6) + (hash << 16) - hash;
return hash;
}
Я понимаю, методом проб и ошибок, что функция ожидает unsigned char *
, но зачем разместить его после скобок и перед фигурной скобкой? Я не знаю, что это был вариант, и я не могу найти что-нибудь сказать мне, почему это не написано, как это вместо:
static unsigned long
sdbm(unsigned char *str)
{
....
}
Конечно, если я изменить его, чтобы быть, как это, функция по-видимому, работает отлично, так зачем? Какая разница?