11
为什么C中的void表示不无效?
在Java和C#等强类型语言中,void(或Void)作为方法的返回类型似乎意味着: 此方法不返回任何内容。没有。没有回报。您不会从此方法收到任何信息。 真正奇怪的是,在C语言中,void作为返回类型甚至方法参数类型的含义是: 真的可以是任何东西。您必须阅读源代码才能找到答案。祝好运。如果这是一个指针,那么您应该真的知道自己在做什么。 考虑以下C语言示例: void describe(void *thing) { Object *obj = thing; printf("%s.\n", obj->description); } void *move(void *location, Direction direction) { void *next = NULL; // logic! return next; } 显然,第二个方法返回一个指针,根据定义,该指针可以是任何东西。 由于C早于Java和C#,因此为什么这些语言采用void“ nothing”的含义,而C却使用“ nothing or any(当指针时)”呢?