C++ | Declaration & Definition

Declaration yani bildirim, derleyiciye böyle bir değişkenin olduğunu bildirir. Değişkenle ilgili; tuttuğu değerin türü, adı gibi değerler ile ilgili ayrıntılar verir. Definition yani tanım konusuna gelindiğinde, bilinmesi gereken şeylerden biri her definition’ın aslında bir declaration olduğudur.

int a; // definition
/*Burada gördüğünüz üzere derleyiciye değişkenin adını, türünü bildirirken bununla beraber int değişkeni için ayrılan alan kadar hafızadan alan tahsisatı yapılır*/
extern int a; // declaration
/*Fakat burada derleyiciye “bak kardeşim böyle böyle bir değişken var, bunu ben tanımlamıyorum, farklı bir dosyada tanımlanmış, sen bu değişken için bir yer ayırma, linkleme aşamasında git o değişkeni bul ve onu kullan demiş oluyoruz. Yani aslında derleyiciye sadece değişkenle ilgili bilgiler gönderiyor, bu değişkenle ilgili yer ayırma yapma diyoruz.*/

Bu işlem fonksiyonlarda fonksiyonun geri dönüş türü, aldığı parametrelerin geri dönüş türü ve fonksiyon adı ile yapılır.
Örneğin:
int func(int, double);
Burada derleyiciye fonksiyonun 2 parametre aldığını, bu parametrelerden ilkinin int türden olduğunu, ikincisinin double türden olduğunu, geri dönüş değerininin integer yani tam sayı türünden olduğunu ve fonksiyon adını bildirdik. Değişkenlerde olduğu gibi burada da bir alan ayırma işlemi yapılmaz.

Fakat işin definition kısmında bir yer ayırma işlemi yapılmaktadır. Aşağıdaki kod parçası bir definition işlemidir.

int func(int value1, double value2)
{
// ilgili kod
return something;
}