Я читаю книгу ( Программирование с помощью POSIX Threads by Butenhof, 1997), в которой используется C, и наткнулся на следующую строку:
(void)free(data);
Здесь data
просто указатель на выделенную структуру,
data = malloc(sizeof(my_struct_t));
Почему результат free
будет приведен к void
?
Из моего понимания C это, кажется, не имеет смысла по двум причинам:
- Бесплатная функция уже возвращает
void
- Код не использует возвращаемое значение (он даже не присваивается переменной)
Книга была написана в 1997 году. Это что-то вроде наследства?
Автор упоминает, что примеры были запущены на Digital Unix 4.0d, но я до сих пор не могу представить себе причину когда-либо приводить результат функции, если вы не собираетесь использовать этот результат.
free()
как к странности в книге, которую вам не нужно подражать. Когда-то давно это было уместно, но уже не актуально.