Почему этот код с объявлением целого в середине нигде (определение функции между ними), не выдавая ошибку?Почему переменная функции, объявленной вне ее определения функции, не выдает ошибку?
1) Почему это синтаксически правильно.
2) Какая польза от этого.?
#include <stdio.h>
void func(int, int);
int main()
{
int a, b;
a = 10;
b = 20;
func(a, b);
return 0;
}
void func(i, j)
int i,j; //why does this doesn't throw error.
{
printf("a = i = %d\nb = j = %d\n", i, j);
}
Как было сказано ниже, это синтаксически правильно, потому что оно действительно - это оригинальный способ. Использовать этот синтаксис сейчас нет, но, если вы не используете компилятор стиля K & R, который не поддерживает ANSI C. – mah
И не используйте ** EVER **, чтобы обеспечить прототип функции, определенной в стиле K & R. Чтобы узнать, почему, измените 'int' на' char' в прототипе функции, а также в определении. –