Лабораторная работа: Работа с функциями в языке программирования Си
#include <stdio.h>
int a=5, b=7, c=10,x; /* Объявление внешних переменных a,b,c,x целого типа*/
main ()
{ int f;
scanf ("%d", &x); /*Ввод значения переменной x*/
f=kv(); /*обращение к функции*/
printf ("%d",f); /*вывод на экран значения переменной f*/
}
/*функция*/
kv()
{int f;
f=a*x*x+b*x+c; /*вычисление значения f*/
return (f); /*возвращает значение f вызывающей программе*/
}
Если сравнить эту программу с программой, приведенной в примере 2, то можно обнаружить два различия:
1) после имени функции в скобках отсутствуют аргументы;
2) в функции не объявлены переменные, с которыми работает функция.
Это стало возможным потому, что переменные объявлены внешними, а значит они известны всему файлу, в том числе и функции.
Внешние переменные должны быть описаны до функции main(). Только в этом случае они становятся внешними (см. рис. 1).
Приведем программу для этого же примера, рассмотрев случай, когда основная программа и функция расположены в разных файлах.
#include <stdio.h>
int a=5, b=7, c=10,x,f; /* Объявление внешних переменных a,b,c,x,f целого типа*/
main ()
{
scanf ("%d", &x); /*Ввод значения переменной x*/
f=kv(); /*обращение к функции*/
printf ("%d",f); /*вывод на экран значения переменной f*/
}
#include "kv.c" /*включение файла kv.c функцией kv*/