Намедни попался мне под руку следующий, на первый взгляд, ничем не примечательный код:
#include <stdio.h>
#include <math.h>
static int vklad=2000, rost=7;
int main()
{
float schet(void);
printf("schet=%.3f\n",schet());
}
float schet(void)
{
return vklad*powf((100.+rost)/100., 20.);
}
Все компилится. Работает. Выводит 7739.376.
Если вспомнить теорию Си, то вообще-то, определение прототипа функции не обязятельно.
Допустим. Удаляем определение прототипа ф-ции float schet(void) из проги.
Компилируем. Слушаем надоедливые ворчания компилятора.
Запускаем исплоняемый файл и получаем ... -1.999!!!
Почему?!
... << RSDN@Home 1.1.4 beta 3 rev. 207>>