V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
a33291
V2EX  ›  问与答

请教一个 C 语言问题

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