[问题] if判断里面放算式 出来答案不一样?

楼主: hunandy14 (Charlott.HonG)   2016-11-03 21:29:18
程式码:https://goo.gl/Rzowkh
为什么出来的 black[0] 与 black[1]
是不一样的QQ 我想超久到底踩了什么坑= =
#define Ratio 5.5
if (float temp = ((float)Ratio-(int)Ratio) > 0){
// cout << "b=" << temp << endl;
black[1] = 1.0 / temp;
}
这里的的temp出来的结果是 1 是主因
为什么QQ
另外~(float)-(int)
这种做法是否是不可默认的危险结果
(很常见到)我一直在想是不是合法的作法
作者: pttworld (批踢踢世界)   2016-11-03 21:38:00
逻辑指派至变量,只有0,非0。看编译器。建议拆二行写。
作者: shadow0326 (非议)   2016-11-03 21:40:00
operator precedence >先读,再读=
作者: stupid0319 (征女友)   2016-11-03 21:54:00
好厉害的写法,这样写去公司会不会被电啊
作者: Schottky (顺风相送)   2016-11-03 22:37:00
公司喔... 比照上面的 a=a++ 办理,你明天不用来上班了括号不用钱,多加一打不会错
作者: pttworld (批踢踢世界)   2016-11-03 23:09:00
未测试会觉得编译器出错,多了型态。
作者: Caesar08 (Caesar)   2016-11-04 00:19:00
括号不用钱+1
作者: shadow0326 (非议)   2016-11-04 12:14:00
多型态是可编译的 if (int err=foo()) 的写法很常见
作者: noodleT (面T)   2016-11-04 12:44:00
好的程式码是一目了然~
作者: Ommm5566 (56天團)   2016-11-05 08:48:00
踩了白目的坑 为什么一堆人喜欢把程式码写乱好好写似乎很难分行写除错器好设中断点 写成一行真的很白目
作者: steve1012 (steve)   2016-11-05 10:33:00
应该立版规 问之前都要试过拆行xD
作者: longlongint (华哥尔)   2016-11-05 11:41:00
to Ommm5566 举例 有些小公司的老板会要求写出客户无法自行维护的程式码
作者: Ommm5566 (56天團)   2016-11-06 19:12:00
只要uglify再拉掉注解就好了 天下有多少人可以处理没注解又是变量bc的程式码做得到的人 刻意写也是会被看穿
作者: neigence   2016-11-09 02:10:00
>的优先序 比 = 高

Links booklink

Contact Us: admin [ a t ] ucptt.com