Yazan : Şadi Evren ŞEKER
Bu yazı C dilinde bir tip olarak void tipini açıklamayı amaçlamaktadır. void anlam olarak boş demektir. Daha genel anlamda tipsiz demektir. Yani C dilinde int, char, float gibi tiplerimiz var. Şayet bir değişkenin tipi yoksa (veya belli değilse) o zaman void olur.
Örneğin aşağıdaki f fonksiyonu toplamı döndürür:
int f(int a,int b){
return a+b;
}
bu fonksiyon toplama işlemi yaptıktan sonra çağrıldığı yere toplamı döndürür. Şayet bunun yerine toplamı yazdıran bir fonksiyon yazacak olsaydık:
void f(int a, int b){
printf("%d",a+b);
}
yukarıdaki bu fonksiyon görüldüğü üzere herhangi bir değer döndürmüyor. Bu durumda fonkisyonun dönüş değeri yoktur. O halde dönüş değerinin tipi void olur diyebiliriz. Pascal gibi farklı dillerde dönüşü olmayan fonksiyonlara, prosedür (procedure) ismi verilmektedir. C dilinde böyle bir ayrım olmadığı için void tipi geliştirilmiştir.
Ayrıca void bir değişken tipi olarak da kullanılabilir. Bunun tam karşılığı nesne yönelimli programlama dillerinde (object oriented programming) Object tipindeki değişkenlerdir. Yani tipi belli olmayan nesnelerdir. Bunun bir benzeri çeşitli dillerde genel bir tip kullanmaktır. Örneğin php, perl gibi dillerde değişkenlerin tipi belirtilmediği sürece belirsizdir ya da Visual Basic dilinde variant tipi bulunur ve her tipten veriyi alabilir yada bu tiplere dönüşebilir. Aslında bütün bunlar tipsiz değişkenlerdir.
Örneğin:
void sayisal(void *r) { int a; a = * (int *) r; printf("gelen tipsiz değer sayısal olarak:%dn", a); }
Yukarıdaki kodda bir fonksiyona değişken tipi olarak void * tipinde bir parametre verilmiştir. Bunun anlamı gelen tip belirsizdir. Ancak fonksiyonun içinde parametrenin tipi int tipine çevrilmiştir (type casting) ve belirsiz tip belirlenerek printf fonksiyonu içinde kullanılmıştır.
Teşekkürler. Bilgisayar programlama okuyorum. Void anlatılmış ancak tür belirtmek yerine neden void yazıldığını bir turlu anlayamamıştım. Ancak şu anda anladım.
mrb hocam void i anlatmışsınız anladım fakat çalıştıramıyorum bu kodları acaba bu koda başka bi şey ekleyip mi çalıştırıyoruz.yoksa hata ben de mi yine
Kodların nasıl çalıştırılacağını adım adım anlattığım bir yazı zaten bulunuyor. http://www.bilgisayarkavramlari.com/2008/10/06/c-ile-kodlama/ adresine bakabilirsiniz. Ancak yukarıdaki kodlar tek başına bir proje ve bir hedef için yazılmış kodlar değil, daha çok konuyu anlatmak için yazılmış kodlardır, dolayısıyla yukarıdaki kodu neden çalıştırmak istediğinizi anlayamadım. Belki probleminizi veya bu kodlara neden ihtiyaç duyduğunuzu açıklarsanız daha fazla yardımcı olabilirim.
başarılar
Gayet anlaşılır yazmışsınız.
Teşekkür ederim.
hocam merhaba mesela void fonksiyonu olmadan neyi yapamayız örnek verebilirmisiniz ? ben henüz bu void fonksiyonunu tam anlayamadım .