[問題] C語言 == operator 運算

看板C_and_CPP作者 (bodhi)時間5年前 (2019/02/24 13:19), 5年前編輯推噓1(2110)
留言13則, 8人參與, 5年前最新討論串1/1
平台: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://www.ptt.cc/bbs/C_and_CPP/M.1550985546.A.0ED.html ※ 編輯: decheng (123.192.90.167), 02/24/2019 13:19:55

02/24 13:43, 5年前 , 1F
?
02/24 13:43, 1F

02/24 13:45, 5年前 , 2F
很正常的寫法。跟 C99 也沒關係
02/24 13:45, 2F

02/24 14:15, 5年前 , 3F
好的感謝,看來就是我想太多了~ 謝謝~!
02/24 14:15, 3F

02/24 14:22, 5年前 , 4F
如果有 first-class boolean type 比較有差, 例如 Java
02/24 14:22, 4F

02/24 14:22, 5年前 , 5F
但是 C 就沒有這種東西, 所以這樣寫很合理
02/24 14:22, 5F

02/24 14:30, 5年前 , 6F
感謝u大,了解了~
02/24 14:30, 6F

02/24 16:53, 5年前 , 7F
這時候就是需要加括號了
02/24 16:53, 7F

02/25 10:58, 5年前 , 8F
不知道哪裡特殊 大概跟next morning一樣特殊吧
02/25 10:58, 8F

02/25 11:01, 5年前 , 9F
只有基本C語言基礎還學?:那叫學歪 以前整本螞蟻書上完
02/25 11:01, 9F

02/25 11:01, 5年前 , 10F
也不會教到 太早學這個有害身心健康
02/25 11:01, 10F

02/27 14:10, 5年前 , 11F
後面那兩個刮起來,看起來就順眼多惹~~
02/27 14:10, 11F

02/27 14:21, 5年前 , 12F
你把code改得更智障
02/27 14:21, 12F

02/27 23:37, 5年前 , 13F
感謝樓上大大指教,我太蠢了!qq
02/27 23:37, 13F
文章代碼(AID): #1SSYbA3j (C_and_CPP)