[问题] C语言 == operator 运算

楼主: decheng (bodhi)   2019-02-24 13:19:03
平台:Linux 编译器:gcc
想请问各位大大,小弟最近在某个driver .c档看到以下写法:
retval= readw(addr1) == readw(addr2);
后来把retval值printf也没错,相等就会是true,retval=1;
程式也没问题,但是想说是不是要改写成tenary的写法会比较好:
如下:
retval= readw(addr1) == readw(addr2) ? 1 : 0 ;
总觉得程式原本的写法看起来很怪,但又没错~
小弟只有基本C语言基础,看到一些特殊技巧有时候不太知道怎么办
还请各位帮忙大大看一下,另外这类的技巧是不是要去看C99 spec会比较好
找到答案~ 感谢各位~
作者: KanzakiHAria (神崎・H・アリア)   2019-02-24 13:43:00
?
作者: Bencrie   2019-02-24 13:45:00
很正常的写法。跟 C99 也没关系
楼主: decheng (bodhi)   2019-02-24 14:15:00
好的感谢,看来就是我想太多了~ 谢谢~!
作者: uranusjr (←這人是超級笨蛋)   2019-02-24 14:22:00
如果有 first-class boolean type 比较有差, 例如 Java但是 C 就没有这种东西, 所以这样写很合理
楼主: decheng (bodhi)   2019-02-24 14:30:00
感谢u大,了解了~
作者: loveme00835 (发箍)   2019-02-24 16:53:00
这时候就是需要加括号了
作者: MOONRAKER (㊣牛鹤鳗毛人)   2019-02-25 10:58:00
不知道哪里特殊 大概跟next morning一样特殊吧只有基本C语言基础还学?:那叫学歪 以前整本蚂蚁书上完也不会教到 太早学这个有害身心健康
作者: hunandy14 (Charlott.HonG)   2019-02-27 14:10:00
后面那两个刮起来,看起来就顺眼多惹~~
作者: cia1099 (阿兜啊)   2019-02-27 14:21:00
你把code改得更智障
楼主: decheng (bodhi)   2019-02-27 23:37:00
感谢楼上大大指教,我太蠢了!qq

Links booklink

Contact Us: admin [ a t ] ucptt.com