我正在使用一个旧的代码库,几乎每次调用 free ()都会对其参数进行强制转换。比如说,
free((float *)velocity);
free((float *)acceleration);
free((char *)label);
其中每个指针都是对应(和匹配)类型。我觉得这样做毫无意义。这是很古老的代码,所以我想知道这是不是绑架勒索。如果是这样,我实际上希望支持可能需要这样做的旧编译器,所以我不想删除它们。
使用这些石膏是否有技术上的原因?我甚至看不出有什么实际的理由使用它们。在释放数据类型之前提醒自己数据类型的意义何在?
编辑: 这个问题是 没有另一个问题的重复。另一个问题是这个问题的一个特例,我认为如果关系密切的选民已经阅读了所有的答案,这个问题是显而易见的。
Colophon: 我给出了一个为什么仍然需要这样做的原因的答案,然而,它是一个前 ANSI C 定制(至少在一些程序员中)的答案似乎是它在我的案例中使用的原因。如果有两个对勾,他们都会得到一个。这里的很多人都有很多优点。谢谢你的贡献。