作者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/m.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