a33291
V2EX  ›  问与答

请教一个 C 语言问题

  •  
  •   a33291 · Nov 26, 2022 · 2665 views
    This topic created in 1447 days ago, the information mentioned may be changed or developed.

    今儿看到一个源码,如图 1669426221056.jpg

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

    6 replies  •  2022-11-26 18:36:46 +08:00
    xujinkai
    xujinkai
    Nov 26, 2022 via Android❤️5
    1
    这句本身没作用。编译器会报参数未使用的警告,这句就是用一下这个参数,就不警告了。
    hackpro
    hackpro
    Nov 26, 2022 via iPhone❤️1
    2
    返回值都没赋值
    有个鸟用
    dlsflh
    dlsflh
    Nov 26, 2022 via Android❤️1
    3
    zero warning strategy.
    yolee599
    yolee599
    Nov 26, 2022 via Android❤️1
    4
    告诉编译器,这个变量我还有用,不许报错。
    choury
    choury
    Nov 26, 2022❤️3
    5
    为了在 Release 环境下编译没有 warning ,因为 Release 编译时 assert 会被去掉,而这个时候 len 就没有地方用到了,加个(void)len; 就可以消除掉参数未使用的 warning
    a33291
    a33291
    OP
    Nov 26, 2022
    6
    @choury #5 感谢说明,在 release 模式的时候,这个无效语句不会被优化掉然后 flow 分析的时候任然发现 len 没有被用到吗?还是说这个(void)len 会被保留?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2589 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:24 · PVG 12:24 · LAX 20:24 · JFK 23:24
    ♥ Do have faith in what you're doing.