【发布时间】:2020-01-12 19:06:10
【问题描述】:
在Do I cast the result of malloc? 中说,您不需要强制转换malloc() 函数或其家族成员之一返回的void 指针,因为由于标准它可以省略并且可能导致问题之手。
但是一般来说,void 指针的转换呢?投射void 指针的一般方法有什么不同吗?
- 应该将
void指针转换为 C 中的另一个类型指针吗? - 在 C 语言中是否有任何地方可以转换
void指针?
【问题讨论】:
-
我会投票关闭作为副本 - 没有什么不同。
-
是的,有:在您为
qsort提供的回调函数中,它具有void*参数。你需要让他们对他们做任何有用的事情。 -
不,@WeatherVane,您需要转换它们才能对它们做任何有用的事情。这种转换可以在没有强制转换的情况下执行。例如,通过分配给正确类型的变量。
-
@WeatherVane 或分配给变量。
-
为了解决我应该演员表,有一个通常的演员表指导方针:如果你不需要,不要明确指定一个。 (其中“需要”足够模糊,无法进行编码风格讨论。)