Chinaunix

标题: 不等于号用法,关于代码中value!=fun()的问题。 [打印本页]

作者: a742794196    时间: 2016-05-03 13:48
标题: 不等于号用法,关于代码中value!=fun()的问题。
我在代码中看到的,不是太理解。下面是大概的代码。
int  value;

value != fun();

if(value != 某个值)
{

}

这是什么用法? 请教各位。
作者: hellioncu    时间: 2016-05-03 14:09
相当于调用了一下 fun(),比较应该被优化掉
作者: a742794196    时间: 2016-05-03 14:12
回复 2# hellioncu


   
作者: a742794196    时间: 2016-05-03 14:13
我知道是调用了fun(), 你说的应该被优化掉是什么意思???意思是编译器优化的时候把!去掉了??那它添加这个!=的意义何在??
作者: VIP_fuck    时间: 2016-05-03 14:31
就看 fun() 干了什么事嘛。比如检测某个值是否正确,或者其他神马。如果只是打印个 hello world,那就没必要存在了。就改被优化掉了。

这么写代码风格不敢苟同,不必要深究。
作者: hellioncu    时间: 2016-05-03 14:37
a742794196 发表于 2016-05-03 14:13
我知道是调用了fun(), 你说的应该被优化掉是什么意思???意思是编译器优化的时候把!去掉了??那它添加这 ...


人家写的代码,不一定都是好的、正确的

作者: a742794196    时间: 2016-05-03 14:37
正常写的话。。。比如,,
int fun()
{
     int a = 10;

}
作者: a742794196    时间: 2016-05-03 14:39
正常写的话。。。比如,,
int fun()
{
      int a = 10;
      if(a > 0)
        return 2;
      else
       return -1;
}

int main(void)
{
  int a= 0;
  a != fun();
printf(“%d\n", a);
这样写a应该还是0的吧。。这相当于没有赋值啊。
}
作者: chenggl    时间: 2016-05-05 16:21
本帖最后由 chenggl 于 2016-05-05 16:21 编辑

回复 8# a742794196

!= 的含义是判断两边的操作数是否不相等,如果不相等,返回真值,否则假。
== 的含义和!=的意思相反。
= 的含义是赋值,将右边的操作数的值赋值给左边的操作数,左边操作数不能是常量。
这三个区别开就可以了。
if(a != fun()){.....}这样的写法没有问题,建议在学习初期,使用 int result = fun(); if (a != result){.....}的方式,会更明晰一些。


   




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2