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

C语言里if(x ==!(!x))这种东西有什么意义吗?

  •  
  •   sivacohan ·
    PRO
    · Apr 12, 2013 · 6930 views
    This topic created in 4773 days ago, the information mentioned may be changed or developed.
    一个蛋疼的孩子问的。
    我第一反应是这孩子一定是看了谭爷爷写的书。
    然后又觉得这个提供了一个bool类型检测的手段。

    把谭老先生的因素排除,这种写法,还能产生什么作用呢?
    10 replies    1970-01-01 08:00:00 +08:00
    wjchen
        1
    wjchen  
       Apr 12, 2013
    x是int类型的话,判断x是否是0或者1.
    kingwkb
        2
    kingwkb  
       Apr 12, 2013
    这是反人类的写法
    ini
        3
    ini  
       Apr 12, 2013
    初一看,是在转换bool类型,但C语言没有bool类型,所以实际是在扯蛋。
    我感觉写出这种语句的人,肯定是js写多了吧,js里面偶尔会有这种写法,当然也只是偶尔。

    个人看法,勿喷。
    200
        4
    200  
       Apr 12, 2013
    一般这种东西都是写成宏来用
    chmlai
        5
    chmlai  
       Apr 12, 2013
    写这种代码真是蛋痛;
    之前合作一个项目, 有人这样写:
    if (!!x) {}
    if (!!!x) {}
    真想死....
    xatest
        6
    xatest  
       Apr 12, 2013
    蛋疼写法,没有必要,只能提高代码的逼格。
    sivacohan
        7
    sivacohan  
    OP
    PRO
       Apr 12, 2013
    @kingwkb

    说了排除谭先生的因素了


    @ini

    目测没见过这么写js,谁要这么写,我保证揍他!


    @chmlai

    这么写的人,必须锤死!!


    @xatest

    恩,我认为你说的对!
    这是某个大二坚持Emacs比vim好用无数倍,其实只是觉得Emacs用ctrl比vim用Esc键位不方便……连自定义键位都不知道的孩子提出的我认为是用来装逼的问题……
    66450146
        8
    66450146  
       Apr 12, 2013
    @chmlai 什么样的人才能写出这种代码啊。。。
    guoxx_
        9
    guoxx_  
       Apr 12, 2013
    int boolX = !!x
    if(boolTypeValue != boolX){
    boolTypeValue = boolX

    // bala bala
    }

    应该是这样的吧
    int boolX = !!x; gcc 4.2.1会把x的值强制转换成o or 1, 所以就可以用boolTypeValue == boolX了
    个人觉得lz貌似把代码写错了
    chmlai
        10
    chmlai  
       Apr 12, 2013
    @guoxx_ 是的, int boolX = !!x 赋值的时候有用.
    lz那种写法是没有意义的.
    if是非零判断, 应该和false(或0)比较的.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   926 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 21:23 · PVG 05:23 · LAX 14:23 · JFK 17:23
    ♥ Do have faith in what you're doing.