[問題] 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