Зачем нужны прототипы функций - 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);
}

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

  1. #include — подключает файл стандартного ввода/вывода, что позволяет использовать функции для работы с консолью
  2. void func(int, float); — объявление функции с двумя параметрами типа int и float, и без возвращаемого значения
  3. int main(){ — начало функции main, которая является точкой входа в программу
  4. func(2, 1.0, 4); — вызов функции func с тремя аргументами (2, 1.0, 4), которые передаются в функцию
  5. return 0; — завершение функции main, передача управления и ресурсов программы операционной системе
  6. void func(int x, float y){ — начало функции func, которая принимает два аргумента типа int и float
  7. printf(%f, y / (float)x); — использование функции printf для вывода значения y / (float)x в консоль
  8. } — конец функции func

Оцени полезность:

13   голосов , оценка 4.154 из 5
Похожие ответы