- 0
- 0
- 0
- 0
- 0
- 0
VOİD NEDİR ?
“void” bir programlama terimidir ve “boş” anlamına gelir. “void” kelimesi, bir fonksiyonun geri dönüş kıymetini belirtmek için kullanılır. Eğer bir fonksiyon “void” olarak tanımlanmışsa, bu fonksiyonun geriye herhangi bir kıymet döndürmediği anlamına gelir.
Ek olarak, “void” kelimesi C ve C++ programlama dillerinde kullanılır ve fonksiyonların parametre olarak boş bir kıymet alacağını ifade etmek için de kullanılabilir. Bu durumda, “void” bir parametre listesinin belirtilmesinde kullanılır ve bu fonksiyonun hiçbir parametre almadığı anlamına gelir.
“void” ek olarak C ve C++ dillerinde hafıza yönetimi ile ilgili kullanılır. “void” pointer, herhangi bir türdeki veriye işaret edebilen bir hafıza adresi tutucudur. “void” pointer, tür belirtilmeden tanımlanır ve tür dönüşümü yapmak için kullanılabilir.
Mesela, aşağıdaki kod örneğinde, “void” pointer kullanılarak hafıza adresi alınmış ve sonrasında bu hafıza adresi “int” tipine dönüştürülmüştür:
java
Copy code
void* ptr;
int a = 10;
ptr = &a;
int b = *((int*)ptr); // Void pointer’dan int tipine dönüşüm
Bu kod örneğinde, ilk olarak “void” pointer “ptr” tanımlanmış ve “int” türündeki “a” değişkenin hafıza adresi bu işaretçiye atanmıştır. Ondan sonra, “ptr” işaretçisinden “int” türüne dönüştürülmüş ve “b” değişkenine atanmıştır.
Kısacası, “void” terimi, programlama dillerinde bir fonksiyonun geri dönüş değerinin olmamasını ifade ederken, bununla beraber hafıza yönetimi ve tür dönüşümüyle de ilgilidir.
Ek olarak C++ dilinde, “void” anahtar kelimesi “template”lerde kullanılır. Bir “template”de belirli bir tür yerine “void” kullanıldığında, bu “template”in belirli bir türle kullanılmak yerine herhangi bir türle kullanılabileceği anlamına gelir.
Mesela, aşağıdaki kod örneğinde “template” bir derslik tanımlanmıştır ve “T” yerine “void” kullanılmıştır. Bu durumda, “myFunction” fonksiyonu, herhangi bir türle değil, herhangi bir türle değişmez:
c
Copy code
template <void>
class MyClass {
public:
void myFunction() {
std::cout << “This function can be called with any type.” << std::endl;
}
};
Kısacası, “void” terimi, programlama dillerinde değişik bağlamlarda kullanılır ve çoğunlukla fonksiyon geri dönüş kıymeti olarak kullanılırken, hafıza yönetimi, tür dönüşümü ve “template”lerde de kullanılmaktadır.
“void” ek olarak C dilinde “main” fonksiyonunun geri dönüş kıymeti olarak kullanılır. “main” fonksiyonu, programın başlatılmasıyla ilgili kod bloğunu ihtiva eder ve işletim sistemi tarafınca çağrılır. “main” fonksiyonu, programın sonlandırılmasıyla ilgili çıkış kodunu geri döndürür. C dilinde, “main” fonksiyonunun geri dönüş kıymeti “int” türüdür ve programın çıkış kodunu belirtir. Sadece “main” fonksiyonu kimi zaman “void” olarak tanımlanabilir. Bu durumda, “main” fonksiyonu herhangi bir geri dönüş kıymeti döndürmez ve programın çıkış kodu 0 olarak varsayılır. Mesela:
javascript
Copy code
void main() {
printf(“Hello World!”);
}
Bu kod örneğinde, “main” fonksiyonu “void” olarak tanımlanmıştır. Bu yüzden, “main” fonksiyonu herhangi bir geri dönüş kıymeti döndürmez ve programın çıkış kodu varsayılan olarak 0 olur.
Kısacası, “void” terimi, programlama dillerinde değişik amaçlar için kullanılabilir ve programlama dillerine ve bağlama bağlı olarak değişik anlamlara haiz olabilir. Sadece genel olarak, “void” terimi bir işlevin geri dönüş değerinin olmadığını ifade eder.
void state nedir ?
“void” terimi ek olarak C dilinde “function pointer”ların kullanımında da sıkça kullanılır. “Function pointer”, bir fonksiyonun hafıza adresini tutabilen bir işaretçi türüdür. “Function pointer”lar, bilhassa C dilinde, fonksiyonların dinamik olarak çağrılması ve işlevselliklerin değiştirilmesi için çoğunlukla kullanılır.
“Function pointer”lar “void” işaretçileriyle beraber kullanıldığında, bellekte tutulan fonksiyon adreslerinin türü belirtilmemiş olur. Bu durumda, aynı “void” işaretçilerinde olduğu benzer biçimde, fonksiyon adresi üstünde meydana getirilen işlemler için tür dönüşümü yapmak gerekebilir. Mesela:
void (*myFuncPtr)(int);
Bu kod örneğinde, “myFuncPtr” adlı bir “function pointer” tanımlanmıştır. Bu “function pointer”, “int” türündeki bir parametre alan ve geri dönüş kıymeti olmayan bir fonksiyonu işaret edebilir. “Function pointer”ın türü “void (*)(int)” şeklindedir. Bu ifade, “void” işaretçisiyle adım atar ve “int” parametresi olan bir fonksiyonun işaretçisini gösterir.
Kısacası, “void” terimi, “function pointer”lar benzer biçimde bellekte tutulan fonksiyon adreslerinin türü belirtilmediğinde yada fonksiyonların geri dönüş kıymeti olmadığında kullanılan bir anahtar kelime olarak karşımıza çıkar.
“void” terimi ek olarak hafıza yönetimi mevzusunda da önemlidir. Hafıza yönetimi, programın emek verme zamanında hafıza kullanımı ve yönetimiyle ilgili işlemleri ihtiva eder. Dinamik hafıza yönetimi, programın emek verme zamanında hafıza ayırmak ve özgür bırakmak için kullanılır.
Bir işlev, bellekte dinamik olarak ayrılmış hafıza bloklarını kullanabilir ve bu hafıza bloklarına işaretçi vesilesiyle erişebilir. “Void” işaretçileri, bellekteki herhangi bir veri türüne işaret edebilir. Bu yüzden, hafıza yönetimi esnasında “void” işaretçileri, bellekteki değişik türler içinde dönüşümleri kolaylaştırmak için kullanılır.
Mesela, aşağıdaki kod örneğinde, “malloc” işlevi kullanılarak hafıza alanı ayrılır ve “void” işaretçisi kullanılarak bu hafıza alanına erişilir:
void* myPtr;
myPtr = malloc(sizeof(int));
Bu kod örneğinde, “malloc” işlevi kullanılarak bellekte “int” türünden bir hafıza bloğu ayrılmıştır ve “void” işaretçisi “myPtr” vesilesiyle bu hafıza bloğuna erişilir. Bu “void” işaretçisi, bellekteki herhangi bir veri türüne işaret edebilir, bu yüzden ayrılan hafıza bloğuna herhangi bir veri türü atanabilir.
Kısacası, “void” terimi, hafıza yönetimi esnasında dinamik olarak ayrılan hafıza bloklarına erişimde kullanılan bir işaretçi türüdür. “Void” işaretçileri, bellekteki değişik türler içinde dönüşümleri kolaylaştırmak için kullanılır.