Зачем нужны прототипы функций - C (СИ)
Формулировка задачи:
Изучаю значит функции. В учебнике зашла речь о прототипах. Объясните пожалуйста, зачем они нужны, если программа и так выполняется без ошибок.
#include <stdio.h>
int power(int, int); // Если удалить эту строку, программа по прежнему работает
main()
{
int number, base;
for (number = 1; number <= 10; ++number)
printf("%d %d\n", number, power(2, number));
return 0;
}
int power(int base, int num)
{
int i, side;
side = 1;
for (i = 1; i <= num; ++i)
side *= base;
return side;
}Решение задачи: «Зачем нужны прототипы функций»
textual
Листинг программы
#include <stdio.h>
void func(int, float);
int main(){
func(2, 1.0, 4); /* неверное число аргументов */
return 0;
}
void func(int x, float y){
printf("%f", y / (float)x);
}
Объяснение кода листинга программы
- #include
— подключает файл стандартного ввода/вывода, что позволяет использовать функции для работы с консолью - void func(int, float); — объявление функции с двумя параметрами типа int и float, и без возвращаемого значения
- int main(){ — начало функции main, которая является точкой входа в программу
- func(2, 1.0, 4); — вызов функции func с тремя аргументами (2, 1.0, 4), которые передаются в функцию
- return 0; — завершение функции main, передача управления и ресурсов программы операционной системе
- void func(int x, float y){ — начало функции func, которая принимает два аргумента типа int и float
- printf(
%f, y / (float)x); — использование функции printf для вывода значения y / (float)x в консоль - } — конец функции func