我的理解是括號沒有任何區別,那麼是否有任何理由(除了「提高」代碼清晰度)Clang警告這是默認值?我不想添加括號,因爲我不喜歡爲代碼添加代碼。爲什麼Clang警告:''&''在'||'內?
src/websocket.c:420:43: warning: '&&' within '||' [-Wlogical-op-parentheses]
if (rv == 0 && N != 0 || rv == -1 && errno == ECONNRESET) {
~~ ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
src/websocket.c:420:43: note: place parentheses around the '&&' expression to
silence this warning
if (rv == 0 && N != 0 || rv == -1 && errno == ECONNRESET) {
~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
如何爲*清晰度*添加代碼?這裏的括號可以幫助那些不記得關於'&&'和'||'優先級的規則的人(這些規則並不常見)。 – cHao
我全部都是爲了增加清晰度而添加代碼的。然而就我個人而言,在這種情況下,我發現不必要的括號的額外視覺噪音降低了清晰度。當我看到額外的括號時,我立即掃描整行尋找它們的原因,當我找不到時,我不得不思考一段時間,如果我讀錯了,或者如果代碼只是試圖「幫助」我瞭解運營商的優先級,我已經知道了。這段代碼*絕對不適合沒有經驗的編程人員,大部分人閱讀它都會達到我的水平,因此我認爲它們會有相同的感覺。 – mxcl
雖然關於清晰度的觀點是有效的,但按照語言規則警告完美法定代碼似乎很奇怪。 –