Объявление параметров вне декларатора

Стандарт C утверждает, что для определения функции , если декларатор включает список идентификаторов, типы параметров должны быть объявлены в следующем списке объявлений. По-видимому, это имеет значение.

extern int max(int a, int b)
{
return a > b ? a : b;
}

extern int max(a, b)
int a, b;
{
return a > b ? a : b;
}

Здесь int a, b; список объявлений для параметров. В разница между этими двумя определениями в том, что первая форма действует в качестве объявления прототипа, которое вызывает преобразование аргументов последующие вызовы функции, а вторая форма - нет.

Что это означает для программиста и влияет ли это на код, создаваемый компилятором?

7
задан someguy 22 January 2012 в 13:55
поделиться