Fonksiyon Çağrısı

Daha önce tarifi yapılmamış bir isim ifade içerisinde gözüküyorsa ve bunu bir sol parantez takip ediyorsa, kavramsal açıdan bu isim fonksiyonun ismi kabul edilir.

fonksiyon_ismi (x1, x2,..., xn)

 

Argümanlar (biçimsel parametreler) değer ile geçirilirler, yani her bir ifade x1,..., xn hesaplanır ve ardından değer, fonksiyona geçirilir. İfadelerin hesaplanma sıraları ve değerlerin yüklenme sıraları kesin değildir. Çalıştırma esnasında sistem fonksiyona geçirilen argümanların tiplerini ve sayılarını kontrol eder. Bu şekilde fonksiyona yapılan adreslemelere değer çağrısı denir.

Fonksiyon çağrısı, değeri fonksiyonun dönüş değeri olan bir ifadedir. Yukarıda tarif edilen fonksiyon tipi, dönüş değerinin tipi ile uyumlu olmalıdır. Fonksiyon global alan üzerinde, programın herhangi bir yerinde (diğer fonksiyonların dışında) bildirilebilir veya tarif edilebilir. Fonksiyon başka fonksiyonların içerisinde bildirilemez veya tarif edilemez.

Örnekler:

int start()
  {
   double some_array[4]={0.3, 1.4, 2.5, 3.6};
   double a=linfunc(some_array, 10.5, 8);
   //...
  }
double linfunc(double x[], double a, double b)
  {
   return (a*x[0] + b);
  }

Bir fonksiyon ön tanımlı ayarlar ile çağrılırken, geçirilecek parametrelerin listesi sınırlandırılabilir buna rağmen ön tanımlı parametreler kesinlikle geçirilmelidir.

Örnekler:

void somefunc(double init,
              double sec=0.0001, // varsayılan değerleri ayarla
              int level=10);  
//...
somefunc();                      // Yanlış çağrı. bir parametre sunulmalı.
somefunc(3.14);                  // Doğru çağrı
somefunc(3.14,0.0002);           // Doğru çağrı
somefunc(3.14,0.0002,10);        // Doğru çağrı

Fonksiyon çağrısı yapılırken parametreler atlanamaz, ön tanımlı değerleri olsa bile:

somefunc(3.14, , 10);           // Yanlış çağrı -> ikinci parametre atlandı.

Ayrıca Bakınız

Aşırı Yükleme, Sanal Fonksiyonlar, Polimorfizm