Fonksiyonlar programların okunabilirliğini arttırırlar. Eğer biz hiç fonksiyon kullanmazsak bütün işlemleri main fonksiyonunda yaparız ve main fonksiyonu alabildiğine uzar gider. Buna çözüm olarak mainden başka yerde fonksiyon yazarak main fonksiyonunun görünümünü daha okunaklı hale getirebiliriz. Aynı zamanda böylelikle programın ne yaptığını anlaması da daha rahat olacaktır.
Yazılan fonksiyonlar mainden sonrayani main fonksiyonunun altına yazılacaksa , yukarıda yani main fonksiyonundan önce o fonksiyonların prototype’leri olmalıdır. Eğer fonksiyonlar mainden önce yazılıyorsa o zaman zaten fonksiyonlar program tarafından tanınır ve prototype eklemeye gerek kalmayacaktır.
Örnek olarak;
Prototype’li olan örneğimiz:
#include<stdio.h>
#include<conio.h>
void
getNumbers(int *numberFirst, int *numberSecond);
int
sum(int numberFirst, int numberSecond);
int
substract(int numberFirst, int numberSecond);
int
main(void)
{
int numberFirst,
numberSecond;
getNumbers(&numberFirst,&numberSecond);
printf("%d\n",sum(numberFirst,numberSecond));
printf("%d",substract(numberFirst,numberSecond));
getch();
return (0);
}
/* Bu fonksiyon ile kullanicidan degerleri aliyoruz. */
void
getNumbers(int *numberFirst, int *numberSecond)
{
printf("Bir tam sayi giriniz.\n");
scanf("%d",numberFirst);
printf("Bir tam sayi daha giriniz.\n");
scanf("%d",numberSecond);
}
/* Bu fonksiyon ile kullanici tarafindan girilen sayilari topluyoruz. */
int
sum(int numberFirst, int numberSecond)
{
return (numberFirst + numberSecond);
}
/* Bu fonksiyon ile kullanici tarafindan girilen sayilarin farkini aliyoruz. */
int
substract(int numberFirst, int numberSecond)
{
return (numberFirst - numberSecond);
}
Bu örnek şu şekilde de olabilirdi.
#include<stdio.h>
#include<conio.h>
/* Bu fonksiyon ile kullanicidan degerleri aliyoruz. */
void
getNumbers(int *numberFirst, int *numberSecond)
{
printf("Bir tam sayi giriniz.\n");
scanf("%d",numberFirst);
printf("Bir tam sayi daha giriniz.\n");
scanf("%d",numberSecond);
}
/* Bu fonksiyon ile kullanici tarafindan girilen sayilari topluyoruz. */
int
sum(int numberFirst, int numberSecond)
{
return (numberFirst + numberSecond);
}
/* Bu fonksiyon ile kullanici tarafindan girilen sayilarin farkini aliyoruz. */
int
substract(int numberFirst, int numberSecond)
{
return (numberFirst - numberSecond);
}
int
main(void)
{
int numberFirst,
numberSecond;
getNumbers(&numberFirst,&numberSecond);
printf("%d\n",sum(numberFirst,numberSecond));
printf("%d",substract(numberFirst,numberSecond));
getch();
return (0);
}
Yukarıdaki örneklerde de görüldüğü gibi programımız gayet okunaklı ve sade bir maine sahip.