Я работаю через K & R, чтобы научиться программированию. Хорошо продвигаться до сих пор, но я не понимаю о роли строки кода из раздела 1.8 (функции).Какова цель этой строки? (Объявление функции)
В разделе 1.8 авторы показывают, как создать функцию, которая может поднять одно целое число до другого целого.
Я наклеил код ниже, как написано в книге. Все выводится нормально. Но я не знаю, почему они включили эту линию в верхней части:
int power(int m, int n);
Книга не упоминает об этом, кроме сказать, что программа поднимет число т к мощности п. Если я удалю строку из кода, программа по-прежнему будет выводиться так, как должна.
Если я понимаю правильно, линия
int power(int base, int n)
создает функцию, а фигурные скобки под определение функции. Затем скобки под основным вызовом выполняют функцию вывода диаграммы.
Так что все это имеет смысл. Но я не понимаю, что делает сама верхняя линия.
Это может быть посторонним, но, похоже, гораздо более вероятно, что я что-то упустил. Может ли кто-нибудь просветить меня, почему эта линия есть?
#include <stdio.h>
int power(int m, int n);
/* test power function */
main()
{
int i;
for (i = 0; i < 10; ++i)
printf("%d %d %d\n", i, power(2,i), power(-3, i));
return 0;
}
/* power: raise base to n-th power; n >= 0 */
int power(int base, int n)
{
int i, p;
p = 1;
for (i = 1; i <= n; ++i)
p = p * base;
return p;
}
+1: Спасибо за урок истории. –
Примечание: оставляя тип возвращаемого значения 'main' работает, вероятно, по той же причине, что отказ от работы декларации для OP, в прежние времена C имел правило« неявное int », если тип не указан, подразумевалось неявно быть 'int'. Таким образом, неявный тип 'power' соответствует его реальному типу, поэтому он работал (по-прежнему работает на многих, если не на большинстве компиляторов, из-за обратной совместимости). –
@ DanielFischer: Это верно в C90 и ранее (я специально замалчивал это); правило «неявное int» было сброшено на C99. По-прежнему не рекомендуется использовать это. –