void EnterValues(float dataarray[][MAXDATACOL]);
- это прототип функции, что означает, что он используется, чтобы сообщить компилятору, что есть функция, объявленная где-то (в данном случае в том же файле C), с именем EnterValues
, которая возвращает float dataarray[][MAXDATACOL]
в качестве параметра и ничего не возвращает (void
) прототип функции не объявляется внутри какой-либо функции, но снаружи, и он должен быть объявлен до того, как вы сможете использовать эту функцию. в противном случае компилятор не будет знать, что вы имеете в виду, когда вызываете эту функцию.
Когда вы вызываете функцию, что происходит внутри какой-то другой функции (в этом случае вы хотите вызвать EnterValues
из main
), вы не упоминаете, какой тип она получает / возвращает. Вы просто подчиняетесь объявлению функции (прототипа), передавая ей входные параметры правильного типа и присваивая ее возвращаемое значение переменной правильного типа.
Например:
/* This is the prototype of our function multiply */
int multiply(int arg1, int arg2);
/* This is the main function which will use multiply */
int main()
{
int a = 4;
int b = 3;
int sum;
/* here we call the function, we don't write the types it gets, but obeying the prototype */
sum = multiply(a, b);
return 0;
}
/* This is the implementation of the function multiply */
int multiply(int arg1, int arg2)
{
return arg1 * arg2;
}
Поскольку я вижу много ошибок в вашем коде, я предлагаю вам прочесть книгу Язык программирования C , который не совсем новый, но очень и очень яркий. (см. этот вопрос )