V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sivacohan
V2EX  ›  问与答

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

  •  
  •   sivacohan · 2013-04-12 09:43:17 +08:00 · 6470 次点击
    这是一个创建于 4268 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个蛋疼的孩子问的。
    我第一反应是这孩子一定是看了谭爷爷写的书。
    然后又觉得这个提供了一个bool类型检测的手段。

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

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

    说了排除谭先生的因素了


    @ini

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


    @chmlai

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


    @xatest

    恩,我认为你说的对!
    这是某个大二坚持Emacs比vim好用无数倍,其实只是觉得Emacs用ctrl比vim用Esc键位不方便……连自定义键位都不知道的孩子提出的我认为是用来装逼的问题……
    66450146
        8
    66450146  
       2013-04-12 10:51:32 +08:00
    @chmlai 什么样的人才能写出这种代码啊。。。
    guoxx_
        9
    guoxx_  
       2013-04-12 14:10:02 +08:00
    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  
       2013-04-12 14:18:50 +08:00
    @guoxx_ 是的, int boolX = !!x 赋值的时候有用.
    lz那种写法是没有意义的.
    if是非零判断, 应该和false(或0)比较的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1016 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 21:30 · PVG 05:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.