Объявление и определение функции C - аргументы, определенные как в паскале: какими они должны быть?

Недавно я прочитал интересный код, но не могу определить его значение:

void foo(arg1, arg2)
int arg1;
unsigned char arg2[16];
{
    //some code
}

Я никогда раньше не видел ничего подобного в языке C в качестве объявления и определения аргумента функции. Я разрабатываю программное обеспечение с 2003 года, но это что-то вроде старого или совершенно нового. Что это за стиль определения функции? Насколько я помню, так можно было объявить аргументы в Pascal, но не в C.

Андрей


person A.V.    schedule 28.03.2013    source источник
comment
Посмотрите здесь: syque.com/cstyle/ch6.16.htm. Кроме того, есть вопрос с компилируемым старым кодом в стиле C: stackoverflow.com/questions/4581586/   -  person izogfif    schedule 28.03.2013


Ответы (2)


Это оригинальный C до ANSI, как показано в K&R1 (оригинальное издание «Языка программирования C» Кернигана и Ритчи. Этот синтаксис использовали так называемые «изначальные» или компиляторы C до ANSI. Некоторые современные компиляторы могут быть вызваны так что они примут этот тип кода с параметрами командной строки.

C с тех пор сильно развился, но вы все еще время от времени сталкиваетесь с ним в старых программах.

person Randy Howard    schedule 28.03.2013

Это равно:

 void foo(int arg1, unsigned char arg2[16]) 
 {

Это очень старый стиль.

person TieDad    schedule 28.03.2013