看板 C_and_CPP 關於我們 聯絡資訊
在trace gcc的code的時候,發現一段程式碼有點疑問 下面這段是他在作lex的時候的程式段: case ':': result->type = CPP_COLON; if (*buffer->cur == ':' && CPP_OPTION (pfile, cplusplus)) *buffer->cur++, result->type = CPP_SCOPE else ..... ..... 他程式碼寫if時,並沒有加上左右大括號,卻執行兩行程式碼 但實際上是會被執行的,而且沒有問題 不過我換了另一種方式就沒有辦法了,如下code int i = 0; if (!i) printf("123\n"), printf("456\n"); else printf("789\n"); 這樣的寫,只會印出123,後面的456卻不會印出 這就是我不明白的地方,為什麼assign的敘述句會處理,但是printf(i/o)卻不處理呢? 還請指點一下,謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.91
tinlans:但是這 code 怎麼看都會印出 456 才對。 07/29 11:25
godman362:欸....剛剛重新測又可以了 07/29 11:32
godman362:我再多測試幾次好了,謝謝 07/29 11:32
loveme00835:XD 07/29 11:45