请教一个 C 语言问题

2022-11-26 09:36:05 +08:00
 a33291

今儿看到一个源码,如图

请问这个(void)len 的作用是啥?之前只学了个皮毛,大佬轻喷

1742 次点击
所在节点    问与答
6 条回复
xujinkai
2022-11-26 09:42:03 +08:00
这句本身没作用。编译器会报参数未使用的警告,这句就是用一下这个参数,就不警告了。
hackpro
2022-11-26 09:59:03 +08:00
返回值都没赋值
有个鸟用
dlsflh
2022-11-26 10:32:51 +08:00
zero warning strategy.
yolee599
2022-11-26 10:37:19 +08:00
告诉编译器,这个变量我还有用,不许报错。
choury
2022-11-26 12:05:53 +08:00
为了在 Release 环境下编译没有 warning ,因为 Release 编译时 assert 会被去掉,而这个时候 len 就没有地方用到了,加个(void)len; 就可以消除掉参数未使用的 warning
a33291
2022-11-26 18:36:46 +08:00
@choury #5 感谢说明,在 release 模式的时候,这个无效语句不会被优化掉然后 flow 分析的时候任然发现 len 没有被用到吗?还是说这个(void)len 会被保留?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/898016

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX