Saya membaca buku ( Pemrograman dengan POSIX Threads oleh Butenhof, 1997) yang menggunakan C, dan saya menemukan baris berikut:
(void)free(data);
Di sini, data
hanya sebuah pointer ke struct yang dialokasikan,
data = malloc(sizeof(my_struct_t));
Mengapa akibat free
dilemparkan void
?
Dari pemahaman saya tentang C, ini sepertinya tidak masuk akal karena dua alasan:
- Fungsi gratis sudah kembali
void
- Kode tidak menggunakan nilai kembali (bahkan tidak ditugaskan ke variabel)
Buku itu ditulis pada tahun 1997. Apakah ini semacam warisan?
Penulis menyebutkan bahwa contoh dijalankan di Digital Unix 4.0d, tapi saya masih tidak bisa membayangkan alasan untuk pernah melemparkan hasil fungsi jika Anda tidak akan menggunakan hasil itu.
free()
sebagai keanehan dalam buku yang tidak perlu Anda tiru. Itu semi-relevan dulu sekali, tapi itu tidak relevan lagi.