為啥C中的位邏輯運算子優先順序低於等於和不等於

來源:互聯網
上載者:User

http://www.cnblogs.com/aoaoblogs/archive/2012/05/02/2478758.html 

 

 

早期的c木有從操作符上區分邏輯運算&&/||和位邏輯運算&/|,(曉得了不?)。&和|使用"真值上下文"(繼承自B和BCPL)思想解釋其意義:如果是在"if"、“while”什麼的後面,因為要求這裡必須是一個布林運算式,因此&和|都是被當成現在的&&和||在解釋;普通運算式裡面&和|才被解釋成位邏輯運算。這辦法還不錯,除了有點理解障礙。(There was the notion of "top-level operators" in a truth-value context. 

當時&和|的優先順序和現在的&和|是一樣的。在Alan Snyder的強烈要求下,&&和||被添加到c裡面,由此分離了位邏輯運算子和邏輯運算子。但是吧,關於這個優先順序問題我總有一種寒從腳底生的趕腳,比如我們會看到很多醬的代碼:if (a==b & c==d) ...(抖...)現在看哈可能把&的優先順序提高到高於==更好,但是當時的話可能還是只是對&和&&做個區分,別去修改既有&操作符的優先順序更穩妥一些。(畢竟,俺們有成千上萬的源碼哇。。maybe 3 installations。。。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.