作者decheng (bodhi)
看板C_and_CPP
标题[问题] C语言 == operator 运算
时间Sun Feb 24 13:19:03 2019
平台: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会比较好
找到答案~ 感谢各位~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.90.167
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1550985546.A.0ED.html
※ 编辑: decheng (123.192.90.167), 02/24/2019 13:19:55
1F:推 KanzakiHAria: ? 02/24 13:43
2F:推 Bencrie: 很正常的写法。跟 C99 也没关系 02/24 13:45
3F:→ decheng: 好的感谢,看来就是我想太多了~ 谢谢~! 02/24 14:15
4F:→ uranusjr: 如果有 first-class boolean type 比较有差, 例如 Java 02/24 14:22
5F:→ uranusjr: 但是 C 就没有这种东西, 所以这样写很合理 02/24 14:22
6F:→ decheng: 感谢u大,了解了~ 02/24 14:30
7F:→ loveme00835: 这时候就是需要加括号了 02/24 16:53
8F:→ MOONRAKER: 不知道哪里特殊 大概跟next morning一样特殊吧 02/25 10:58
9F:→ MOONRAKER: 只有基本C语言基础还学?:那叫学歪 以前整本蚂蚁书上完 02/25 11:01
10F:→ MOONRAKER: 也不会教到 太早学这个有害身心健康 02/25 11:01
11F:→ hunandy14: 後面那两个刮起来,看起来就顺眼多惹~~ 02/27 14:10
12F:嘘 cia1099: 你把code改得更智障 02/27 14:21
13F:→ decheng: 感谢楼上大大指教,我太蠢了!qq 02/27 23:37