C kullanan bir kitap okuyorum ( POSIX Threads tarafından Programlama, Butenhof, 1997) ve aşağıdaki satırla karşılaştım:
(void)free(data);
Burada, data
tahsis edilmiş bir yapıya sadece bir işaretçi,
data = malloc(sizeof(my_struct_t));
Neden sonucudur free
için dışlandığımdı void
?
C anlayışımdan, bu iki nedenden dolayı mantıklı görünmüyor:
- Serbest işlev zaten geri döner
void
- Kod dönüş değerini kullanmıyor (bir değişkene atanmıyor bile)
Kitap 1997'de yazıldı. Bu bir tür miras mı?
Yazar, örneklerin Digital Unix 4.0d'de çalıştırıldığından bahsediyor, ancak yine de bu sonucu kullanmayacaksanız bir işlevin sonucunu yayınlamak için bir neden hayal bile edemiyorum.
free()
taklit etmek gerekmez o kitapta bir gariplik olarak. Uzun zaman önce bir kez yarı alakalı, ama artık geçerli değil.