Это просто «старый стиль», определение функции K & R C (см. книгу Кернигана и Ричи , обычно называемую просто Керниганом и Ричи .)
Код, на который вы ссылаетесь, может быть написан в конце 80-х или начале 90-х годов с учетом переносимости (то есть совместимости со старыми компиляторами, возможно, на более «экзотических» платформах).
Даже после публикации стандарта C 1989 года в течение многих лет K & R C все еще считался «наименьшим общим знаменателем», которым программисты C ограничивали себя, когда требовалась максимальная переносимость, так как многие старые компиляторы все еще использовались, и потому Тщательно написанный код K & R C также может быть юридическим стандартом C.
Некоторые люди могут верить , что определение функции в стиле K & R, все еще поддерживаемое компиляторами, более читабельно, что на самом деле не всегда верно; сравнить:
some_function(param1,param2,param3)
char *param1; /* param1 comment */
int param2; /* param2 comment */
short param3; /* param3 comment */
{
}
с
/* notice also that return type is explicitly specified now */
int
some_function(
char *param1, /* param1 comment */
int param2, /* param2 comment */
short param3 /* param3 comment */
)
{
}
Определения функций в стиле K & R устарели с 1989 года ; увидеть
раздел 6.9.5 «Определения функций» в стандарте C90.