我正在读一本使用C语言的书(Butenhof,1997年出版的Programming with POSIX Threads本),我遇到了以下几行:
(void)free(data);
这里,data
只是一个指向已分配 struct 的指针,
data = malloc(sizeof(my_struct_t));
为什么free
的结果是void
?
从我对C的理解来看,这似乎没有意义,原因有两个:
- free函数已经返回
void
- 代码没有使用返回值(它甚至没有被赋值给变量)
这本书是1997年写的.这是什么遗产吗?
作者提到这些示例是在Digital Unix4.0d上运行的,但是如果您不打算使用某个函数的结果,我仍然无法想象有什么理由对该结果进行强制转换.