История изменений
Исправление baka-kun, (текущая версия) :
Или не так?
Не так. Декларации функций как в C++ стандартизированы в ANSI C, до этого были только расширением в некоторых свежих C/C++ компиляторах. В K&R также не было прототипов функций, типы аргументов выяснялись по первому использованию, поэтому в декларации могли отсутствовать (int) или быть по ошибке не теми. Вот не компилируемый пример:
main (c, v)
int c;
char *v[];
{
int i;
i = fun(c, v);
return 0;
}
fun (a, b)
{
return 1;
}
Чтобы избежать этого и не компилировать мусор, придумали lint, например.
Исходная версия baka-kun, :
Или не так?
Не так. Декларации функций как в C++ стандартизированы в ANSI C, до этого были только расширением в некоторых свежих C/C++ компиляторах. В K&R также не было прототипов функций, например, типы аргументов выяснялись по первому использованию, поэтому в декларации могли отсутствовать. Вот не компилируемый пример:
main (c, v)
int c;
char *v[];
{
int i;
i = fun(c, v);
return 0;
}
fun (a, b)
{
return 1;
}
Чтобы избежать этого придумали lint