在C中转换Void函数

时间:2018-04-19 02:27:02

标签: c casting void

为什么这么多C函数都有Void返回类型但不返回任何内容,例如我正在查看malloc的手册页,它的返回类型是Void,但它也说返回一个地址,它有size_t字节分配

AndroidSDK

在这些情况下,铸造是如何工作的?

在参数中输入void是什么意思?

自由函数的类型为void。

void * malloc(size_t  n)

The malloc() functions allocates size bytes and returns a pointer to the allocated memory.

1 个答案:

答案 0 :(得分:1)

malloc()不会返回void,而是void *。这是一个魔术"键入C,因为它可以转换为其他类型的指针。对于像malloc()这样的函数,只有调用者知道他将使用哪些类型,因此malloc()不必也不能定义返回类型。作为替代方案,它返回void *的类型。

具有free()作为参数的函数*void *ptr的原因相同。