C dilinin en can alıcı kısımlarından biri de, şüphesiz fonksiyonlardır. Eğer buraya kadar olan kısmı okuduysanız, fonksiyonun ne olduğu hakkında ufak bir bilgi edinmişsinizdir. Fonksiyon programlayıcın yapacağı işlemleri gruplandırmasını sağlar. Bu gruplandırma sayesinde onlara ulaşım kolay olur ve program geliştirilmesi de kolaylaşır. Bu söylenileni daha önce BASIC dilini kullananlar daha iyi anlayacaktır. BASIC dilinde böyle bir gruplandırma söz konusu değildir. Bütün işlemler alt alta tek bir liste halinde yazılır. Bu dille uzun programlar yazmak o kadar zordur ki, insanı programlamadan soğutabilir. Neyse, konumuz BASIC dilinin dezavantajları değil elbette
C dilinde program başlatıldığında hemen devreye girecek olan fonksiyon, main ( ) fonksiyonudur. Eğer başka fonksiyonlar tanımlamak isterseniz ilk olarak fonksiyonun ne yapmak istediğini belirtmeniz gerekir. Örnek olarak, bir satırı komple * karakteri ile dolduran bir fonksiyon yapalım. Fonksiyonun ismi yildiz_doldur olsun. (Not: 1 satıra 40 adet karakter sığar)
**** yildiz_doldur( )
{
int i=1;
for( i=1;i<=40;i++)
printf("*");
}
Fonksiyonun başındaki **** ifadesi bu fonksiyonun geriye bir değer döndürmeyeceğini belirtir. Yani getch() fonksiyonunun geriye döndürdüğü bir değer gibi bir değere sahip değildir. Eğer bir fonksiyonun geriye değer döndürmesini istiyorsak döndüreceği değerin tipini buraya yazarız. **** ise bir değer döndürmeyen fonksiyonlarda kullanılır.
Bu fonksiyonu bu şekilde tanımladıktan sonra fonksiyon program başladığı gibi işlemleri faaliyete geçirmeyecektir. Çünkü bu fonksiyonu çalıştırmak için bilgisayara bunu yapmasını söyleyecek komut gerekir. Bu komutu istenilen bir fonksiyonun içine ekleyebilirsiniz. Bizim örneğimizi ana fonksiyonun içine yerleştirelim. Böylece program çalıştığı zaman ilk olarak 1. satır * karakteriyle dolacaktır. Programın tam metni şu şekilde olmalıdır.
C dilinde program başlatıldığında hemen devreye girecek olan fonksiyon, main ( ) fonksiyonudur. Eğer başka fonksiyonlar tanımlamak isterseniz ilk olarak fonksiyonun ne yapmak istediğini belirtmeniz gerekir. Örnek olarak, bir satırı komple * karakteri ile dolduran bir fonksiyon yapalım. Fonksiyonun ismi yildiz_doldur olsun. (Not: 1 satıra 40 adet karakter sığar)
**** yildiz_doldur( )
{
int i=1;
for( i=1;i<=40;i++)
printf("*");
}
Fonksiyonun başındaki **** ifadesi bu fonksiyonun geriye bir değer döndürmeyeceğini belirtir. Yani getch() fonksiyonunun geriye döndürdüğü bir değer gibi bir değere sahip değildir. Eğer bir fonksiyonun geriye değer döndürmesini istiyorsak döndüreceği değerin tipini buraya yazarız. **** ise bir değer döndürmeyen fonksiyonlarda kullanılır.
Bu fonksiyonu bu şekilde tanımladıktan sonra fonksiyon program başladığı gibi işlemleri faaliyete geçirmeyecektir. Çünkü bu fonksiyonu çalıştırmak için bilgisayara bunu yapmasını söyleyecek komut gerekir. Bu komutu istenilen bir fonksiyonun içine ekleyebilirsiniz. Bizim örneğimizi ana fonksiyonun içine yerleştirelim. Böylece program çalıştığı zaman ilk olarak 1. satır * karakteriyle dolacaktır. Programın tam metni şu şekilde olmalıdır.